MySQL では、CASE ステートメントを使用して、特定の条件に基づいてテーブル エントリを更新できます。その方法は次のとおりです:
次のクエリがあります:
update ae44 set Price = Case when ID = 'AT259793380' then '500' when ID = 'AT271729590' then '600' when ID = 'AT275981020' then '700' end case
目標は、以下に基づいて出品価格を一括更新することです。対応するID。ただし、クエリは意図した結果を返しません。
クエリを修正するには、CASE ステートメントを適切に使用する必要があります。正しい構文は次のとおりです:
UPDATE ae44 SET price = CASE WHEN ID = 'AT259793380' THEN '500' WHEN ID = 'AT271729590' THEN '600' WHEN ID = 'AT275981020' THEN '700' END
このクエリは、他の ID を持つレコードの価格を NULL に更新することに注意してください。
必要に応じてリストから ID のみを更新し、null 更新を除外するには、次のコマンドを使用できます。 query:
UPDATE ae44 JOIN ( SELECT 'AT259793380' AS oldval, '500' AS newval UNION ALL SELECT 'AT271729590' AS oldval, '600' AS newval UNION ALL SELECT 'AT275981020' AS oldval, '700' AS newval ) q ON ae44.id = q.oldval SET price = q.newval
このクエリは、UNION ALL ステートメントを使用して作成された一時テーブルで指定された ID の価格のみを更新します。
以上がCASE を使用して条件付きの MySQL エントリを一括更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。