2

JSONオブジェクトから文字列の配列を取得しています。これらの文字列をDBに保存したいのですが、まだそこにない場合に限ります。DBにすでにあるものと、これから入力しようとしているものを比較し、一致を除外するための最良の方法は何ですか?

PHPとMySQLを使用しています。

4

4 に答える 4

6

あなたが説明しているのは、文字列が既に存在する場合にレコードをそのままにしておきたいということなので、おそらく必要なのはIGNORE修飾子INSERTです(つまり、 do INSERT IGNORE ...)。重複するキーが見つかった場合、クエリは何も実行しません。もちろん、これには、挿入する文字列フィールドに一意のキーが必要です。

于 2009-06-11T18:05:47.887 に答える
4

REPLACEはあなたが望むことをするかもしれません-それは挿入します、しかし主キーがすでに存在するならば、その行は最初に削除されます。テーブル内の他の列を保持する必要がない限り、機能するはずです。

http://dev.mysql.com/doc/refman/5.0/en/replace.html

于 2009-06-11T18:03:39.950 に答える
3

MySql では、"ignore" オプションを指定して挿入ステートメントを使用できます。これは、一意のフィールドが既存の行のフィールドと一致する場合、行を挿入しません。テーブルには、関連するフィールドが含まれる一意性制約が必要です。

于 2009-06-11T18:05:54.110 に答える