これを1つのステートメントで実行したい場合(希望どおりのサウンド)、INSERT ... ON DUPLICATE KEY UPDATE
を使用することをお勧めします。 構文は次のとおりです:
INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom')
ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';
最初のINSERT
指定されたキー値(主キーまたは一意)を持つ既存のレコードがない場合、ステートメントが実行されます。レコードがすでに存在する場合は、次のUPDATE
ステートメント(someothervalue = 3
)が実行されます。
これは、MySQLのすべてのバージョンでサポートされています。詳細については、MySQLリファレンスマニュアルページを参照してください。 INSERT ... ON DUPLICATE KEY UPDATE