/ 1つの列内の複数のテーブル行を異なる値で更新 - sql

異なる値を持つ列の複数のテーブル行を更新する - sql

顧客名を更新して挿入する必要がある複数の行があります。以下のような名前を何度も繰り返し実行するのではなく、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句に適用されるクエリはサポートできません。

あなたもする必要はありません。 通常できることは、変数のプレースホルダー付きの準備済みステートメントを使用することです。これは、パラメーターのタプルのリストを使用して実行します。言語、データベースアダプタ、データベースによっては、これが「バッチ」モードで実行されることがあり、これは非常に効率的です。

精度を上げるには、使用している言語、データベース、およびデータベースアダプタに関する詳細情報が必要です。