2016-10-22 11 views
0

私は2つのカラムuseridとmessageidを持つテーブルを持っています。私はPHPスクリプトを通して自動的に更新していますが、動作するinsert文を取得することはできません。私はuseridと重複しているmessageid(実際には両方の重複があるはずです)があるかどうか気にしません。私はuseridとmessageidの同じ組み合わせの重複は望んでいません。私のためにこれを行うクエリを書く方法はありますか、それともPHPレベルで処理する必要がありますか?2列のテーブルに挿入し、重複するレコードを避ける

私はおそらく、ここでGoogleとGoogleで見つけた20の異なるクエリを試したことがありますが、正しくは得られていません。あなたがUNIQUE KEY、SQLは既存のものを複製して新しい行を挿入することを拒否します追加することができます

INSERT INTO interests_join (userid, interestid) 
VALUES (1, 4) 
WHERE NOT EXISTS 
    (SELECT userid, interestid FROM interests_join WHERE userid = 1 AND interestid = 4) 

答えて

3

:これは私が試した最後のものでした。

ALTER TABLE `interests_join` ADD UNIQUE `row` (`userid`, `interestid`); 

次に、クエリが成功したかどうかをチェックする必要があります(エラー#1062)。行が重複している場合はキーを適用できません。最初にキーを削除する必要があります。

+0

は、テーブルを変更するのではなく、クエリを使ってこれを統合する方法を期待していましたが、これで作業が完了しました。 –

関連する問題