mysql 8更新,设置,案例

toiithl6  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(453)

我正在测试多个更新 SET col1 = col2 WHEN col1 != col2 我不明白,为什么它不起作用。我只在输出中看到关于 Row matched 没有关于受影响行的信息

UPDATE db.t1
    JOIN db.t2
    ON  t1.id = t2.id
    JOIN db.t3
    ON t2.id = t3.id
SET col1 = CASE
    WHEN col1 != col2
    THEN col1 = col2
    END
WHERE t1.id = t2.id AND t3.id = t2.id and t1.id = 2
kmbjn2e3

kmbjn2e31#

对这个。。 THEN col1 = col2 .. 在这种情况下,代码作为逻辑条件进行计算(结果可以是0或1)。。
如果要根据案例结果将col2设置为col1,那么应该使用

UPDATE db.t1
JOIN db.t2 ON  t1.id = t2.id
JOIN db.t3  ON t2.id = t3.id
SET col1 = CASE
    WHEN col1 != col2
    THEN  col2
    END
WHERE t1.id = t2.id 
AND t3.id = t2.id 
AND t1.id = 2

相关问题