在 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 并排除空更新,您可以使用以下命令查询:
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中文网其他相关文章!