【问题标题】:MySQL how to Update multiple rows with conditions in the same table [closed]MySQL如何使用同一张表中的条件更新多行[关闭]
【发布时间】:2021-07-14 00:02:28
【问题描述】:

我有一个问题,我想用条件更新表中的值。 我有一个用户列表,我需要更新他们的accounting_id,关键是user_id。 我想在一个查询中完成。 问题是查询将 0 放在 accounting id 中。数据库是 MySQL。

UPDATE users
SET users.accounting_id = CASE
        WHEN users.user_id = '102215' THEN users.accounting_id = '102'
        WHEN users.user_id = '102144' THEN users.accounting_id = '193'
    END    
WHERE users.user_id IN ('102215','102144');

【问题讨论】:

    标签: mysql database sql-update mysql-workbench dbvisualizer


    【解决方案1】:

    让我们检查一下语句的then 部分中的表达式。例如:users.accounting_id = '102'。这不是一个赋值,而是一个布尔表达式,其计算结果为 false,因为 accounting_id 不是 102(在这种情况下是 102215)。 case 之前的 = 用于分配。在then 分支中,您只需返回要分配的

    UPDATE users
    SET users.accounting_id = CASE
            WHEN users.user_id = '102215' THEN '102'
            WHEN users.user_id = '102144' THEN '193'
        END    
    WHERE users.user_id IN ('102215','102144');
    

    【讨论】:

    • TNX 你解决了
    猜你喜欢
    • 2016-12-06
    • 2021-02-08
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2012-11-09
    相关资源
    最近更新 更多