首页 > 数据库 > mysql教程 > 如何使用CASE赋值正确更新MySQL中的行?

如何使用CASE赋值正确更新MySQL中的行?

Mary-Kate Olsen
发布: 2024-11-14 10:30:02
原创
232 人浏览过

How to Correctly Update Rows in MySQL Using CASE for Value Assignment?

使用 CASE 进行赋值更新 MySQL 中的行

为了使用 CASE WHEN 语句更新 MySQL 数据库中的特定行,必须遵循正确的语法。提供的查询尝试根据 ID 值更新价格,演示了 CASE 语句的错误用法。

要解决此问题,正确的更新查询应如下所示:

UPDATE ae44
SET price =
CASE
    WHEN ID = 'AT259793380' THEN
        '500'
    WHEN ID = 'AT271729590' THEN
        '600'
    WHEN ID = 'AT275981020' THEN
        '700'
END;
登录后复制

在此更正的查询中,请注意:

  • CASE WHEN 语句的结构正确,包含各个 WHEN
  • 新值的分配是使用 := 语法完成的。
  • 查询以分号 (;) 结尾。

使用 CASE 更新行当根据特定条件分配不同的值时,语句非常有用。但是,请务必注意,所提供的查询将更新所有记录的价格,无论其 ID 为何。如果目标是仅更新查询中提到的特定 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;
登录后复制

以上是如何使用CASE赋值正确更新MySQL中的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板