JSONオブジェクトから文字列の配列を取得しています。これらの文字列をDBに保存したいのですが、まだそこにない場合に限ります。DBにすでにあるものと、これから入力しようとしているものを比較し、一致を除外するための最良の方法は何ですか?
PHPとMySQLを使用しています。
JSONオブジェクトから文字列の配列を取得しています。これらの文字列をDBに保存したいのですが、まだそこにない場合に限ります。DBにすでにあるものと、これから入力しようとしているものを比較し、一致を除外するための最良の方法は何ですか?
PHPとMySQLを使用しています。
あなたが説明しているのは、文字列が既に存在する場合にレコードをそのままにしておきたいということなので、おそらく必要なのはIGNORE
修飾子INSERT
です(つまり、 do INSERT IGNORE ...
)。重複するキーが見つかった場合、クエリは何も実行しません。もちろん、これには、挿入する文字列フィールドに一意のキーが必要です。
REPLACEはあなたが望むことをするかもしれません-それは挿入します、しかし主キーがすでに存在するならば、その行は最初に削除されます。テーブル内の他の列を保持する必要がない限り、機能するはずです。
MySql では、"ignore" オプションを指定して挿入ステートメントを使用できます。これは、一意のフィールドが既存の行のフィールドと一致する場合、行を挿入しません。テーブルには、関連するフィールドが含まれる一意性制約が必要です。