顧客名を更新して挿入する必要がある複数の行があります。以下のような名前を何度も繰り返し実行するのではなく、1つのクエリでこれを実行するにはどうすればよいですか。
UPDATE orders
SET cust_name = "Sue"
WHERE p_id = 6
回答:
回答№1の場合は3次のようなものを使うことができます
UPDATE mytable
SET myfield = CASE other_field
WHEN 1 THEN "value"
WHEN 2 THEN "value"
WHEN 3 THEN "value"
END
WHERE id IN (1,2,3)
詳細情報の確認 異なる値と単一のSQLクエリで複数の行を更新する
回答№2の場合は0
通常、MySQL、DB2、SQL Server、PostgreSQLでは、異なるWHERE句が異なるSET句に適用されるクエリはサポートできません。
あなたもする必要はありません。 通常できることは、変数のプレースホルダー付きの準備済みステートメントを使用することです。これは、パラメーターのタプルのリストを使用して実行します。言語、データベースアダプタ、データベースによっては、これが「バッチ」モードで実行されることがあり、これは非常に効率的です。
精度を上げるには、使用している言語、データベース、およびデータベースアダプタに関する詳細情報が必要です。