単一これらに相当するSQL文はありますか?異なるIDを持つMySQLバッチ更新ステートメント
UPDATE table_name SET (a = 'something', b='B1') WHERE id=1;
UPDATE table_name SET (a = 'something else', b='B2') WHERE id=2;
UPDATE table_name SET (a = 'another', b='B3') WHERE id=3;
単一これらに相当するSQL文はありますか?異なるIDを持つMySQLバッチ更新ステートメント
UPDATE table_name SET (a = 'something', b='B1') WHERE id=1;
UPDATE table_name SET (a = 'something else', b='B2') WHERE id=2;
UPDATE table_name SET (a = 'another', b='B3') WHERE id=3;
はい、この:
UPDATE table_name
SET a = CASE WHEN id = 1
THEN 'something'
WHEN id = 2
THEN 'something else'
WHEN id = 3
THEN 'another'
END
WHERE id IN (1,2,3)
;
が、私はそれはあなたが心の中に持っているものだかどうかわからないんだけど?
おかげさまで、複数のフィールドについて(編集された質問を参照)、CASEブロック内のフィールドを折り返すことができますか、各フィールドごとに異なるCASEブロックを記述する必要はありますか?私のクエリは5つのフィールドを更新する予定です。再度、感謝します。 –
OPはまたbを更新したいので、そのためには2番目の 'CASE'が必要です。 –
5つのフィールドに5つの 'CASE'ステートメントが必要です。 –
挿入するデータの配列が大きい場合は、ON DUPLICATE KEY UPDATE
の構造を使用できます。 MySQLでより効率的に動作します。
同様の質問については、使用例についてはmy answer hereを参照してください。
私には分かりません – hafichuk
3つの文を実行すると何が問題になりますか?あなたのサーバーに特に高い待ち時間が見られるのでなければ、これは問題ではありません。 –