铜陵市大中专张玮 发表于 2023-9-14 12:08:46

MySql中的条件更新

我正在尝试更新表中的值,但是我需要添加一些条件。我找到了CASE函数,但是如果是最好的方法,我就不知道了。这是一个例子:
我的表是例如“关系”
userid1 | userid2 | 名称1 | 名称2
我举个例子:
SELECT *
FROM relation
WHERE (userid1 = 3 AND userid2 = 4)
    OR (userid1 = 4 AND userid2 = 3);
输出:
4 | 3 | 帐单| 杰克
我想在3和4之间的关系中更改用户3的名称,但我不知道它是userid1还是userid2。
我虽然如此
UPDATE relation
   CASE WHEN userid1 = 3 THEN SET name1 = 'jack' END
      WHEN userid2 = 3 THEN SET name2 = 'jack' END
WHERE (userid1 = 3 AND userid2 = 4)
    OR (userid1 = 4 AND userid2 = 3);
但这是行不通的!有任何想法吗?首先十分感谢。
               
解决方案:
               


                不幸的是,最终要获得的结果还不是很清楚,但是这就是您可以如何SET在您的条件中正确使用条件的方法UPDATE
UPDATE relation
   SET name1 = CASE WHEN userid1 = 3 THEN 'jack' ELSE name1 END,
       name2 = CASE WHEN userid2 = 3 THEN 'jack' ELSE name2 END
WHERE (userid1 = 3 AND userid2 = 4)
   OR (userid1 = 4 AND userid2 = 3);
这是 SQLFiddle 演示。
页: [1]
查看完整版本: MySql中的条件更新