MySQL 如何更新具有相同条件的多行 table

MySQL how to Update multiple rows with conditions in the same table

我有一个问题,我想根据条件更新 table 中的值。 我有一个用户列表,我需要更新他们的 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');

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

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');