多くの開発者はまだクエリを実行してフィールドがテーブルに存在するかどうかを確認し、最初のクエリの結果に従って挿入または更新クエリを実行します。ONDUPLICATE KEY構文を使用してみてください。これは、はるかに高速で優れています。次に、2つのクエリを実行します。詳細については、こちら をご覧ください。
cの値を同じに保ちたい場合は、同じ値で更新を行うことができます
'replace'と'onduplicatekey'の違い:
テーブルに主キーまたは一意キーがない場合、置換は意味がありません。
VALUES
を使用することもできます 実際の値を2回指定する必要がないようにする関数。例えば。代わりに
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;
使用できます
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);
ここで、VALUES(c)
以前に指定された値(6)に評価されます。