使用 CASE 批量更新 MySQL 条目以获取新值
在 MySQL 中,使用 CASE 表达式更新条目允许您分配不同的值到基于特定条件的列。要修复提供的查询,请删除 set 关键字后面的逗号并将 CASE 表达式格式化如下:
UPDATE ae44 SET price = CASE WHEN ID = 'AT259793380' THEN '500' WHEN ID = 'AT271729590' THEN '600' WHEN ID = 'AT275981020' THEN '700' END
此查询将更新指定 ID 的相应价格。但是,请务必注意,对于具有未包含在 CASE 表达式中的 ID 的任何记录,它还会将价格值设置为 NULL。
如果您只想更新 CASE 表达式中特定 ID 的价格。列表,使用如下查询:
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
此查询使用子查询创建一个包含 ID 的旧值和新值的表,然后将该表与 ae44 表连接起来并仅执行更新在匹配记录上。
以上是如何使用 CASE 批量更新具有特定值的 MySQL 条目?的详细内容。更多信息请关注PHP中文网其他相关文章!