【问题标题】:UPDATE table SET column = GREATEST(column+number,0)UPDATE table SET column = GREATEST(column+number,0)
【发布时间】:2013-11-06 07:31:13
【问题描述】:

我有一张桌子。一列是INT UNSIGNED,因此不能小于零。我想减去一个数字,但如果数字已经大于该值,我想将其设置为零。

我怎样才能做到这一点?

UPDATE table SET **column = greatest(column-number,0)** WHERE customer_id=? 

没有成功,但在number<0(添加值)时有效。

【问题讨论】:

  • 能否分享图中的具体场景(输入和输出)。
  • 没有成功 -- 你是什么意思?

标签: mysql sql-update unsigned


【解决方案1】:

我会尝试类似:

 UPDATE table SET column = IF(column>number,column-number,0) WHERE customer_id=?;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-29
    • 2018-10-31
    • 2014-01-20
    • 2017-07-04
    • 1970-01-01
    • 2022-12-02
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多