テーブルに存在する場合と存在しない場合があるレコードを更新したいと考えています。データベースに存在しない場合は、挿入されます。
選択を防ぐために、UPDATE最初にステートメントを使用し、そうでないかどうかを確認affected_rows > 0してから、このレコードをテーブルに挿入しています。
これを行うためのより良い方法があるかどうか疑問に思っていましたか?
テーブルに存在する場合と存在しない場合があるレコードを更新したいと考えています。データベースに存在しない場合は、挿入されます。
選択を防ぐために、UPDATE最初にステートメントを使用し、そうでないかどうかを確認affected_rows > 0してから、このレコードをテーブルに挿入しています。
これを行うためのより良い方法があるかどうか疑問に思っていましたか?
INSERT ... ON DUPLICATE KEY UPDATE次の構文を使用できます。
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
http://dev.mysql.com/doc/refman/4.1/en/insert-on-duplicate.html
REPLACEこれと(フェマレフの答え)の違いは、キーが重複している場合は古い行REPLACEを削除してから新しい行を挿入し、既存の行を更新することです。
Replaceの代わりに使用しInsertます。