【问题标题】:How to update mysql cols with comparison如何通过比较更新mysql cols
【发布时间】:2013-09-19 09:30:26
【问题描述】:

我有这张桌子:

+----------------+--------------+
| Field          | Type         |
+----------------+--------------+
| id             | int(10)      |
| confirm        | int(5)       |
| confirm_hold   | int(5)       |
| tmp            | int(6)       |
+----------------+--------------+

并且遇到了一些问题。

如何更新某些行。 例如:

UPDATE `table` IF(`tmp` > 0, SET `confirm_hold`=123, SET `confirm`=123);

谢谢大家

【问题讨论】:

    标签: mysql if-statement case


    【解决方案1】:

    试试这个

    UPDATE `table` SET `confirm_hold` = IF(`tmp` > 0, 123, `confirm_hold`),  `confirm` = IF(`tmp` <= 0, 123, `confirm`)
    

    【讨论】:

    • 每列可以使用一个 if 语句,如果更新两列,则使用 2 if
    • 我非常喜欢我是第一个正确回答这个问题的人,然后你改变了你的 different 答案(我记得看到代码行比当前的要短)与我的相同并得到了所有的积分只是因为你有更多的声誉。不酷。
    【解决方案2】:

    改用函数IF()

    UPDATE `table` SET `confirm_hold` = IF(`tmp` > 0, 123, `confirm_hold`), 
                       `confirm` = IF(`tmp` <= 0, 123, `confirm`)
    

    【讨论】:

      猜你喜欢
      • 2017-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      相关资源
      最近更新 更多