MYSQL选择,将所有负值设置为零

use*_*957 1 php mysql

假设我在这个表中有一个名为"test"的mysql表我有两列"A","B".我想获得AB的结果,但是对于结果为负的每一行,我想将其设置为零.

所以我可以写:select test.A - test.B as myResult

但是当myResult为负数时,我不知道如何将myResult设置为零.请帮忙谢谢

d4R*_*4Rk 7

为什么总是把事情复杂化?

只需使用内置函数解决此类问题:

select greatest(0, test.A-test.B) as myResult from test;
Run Code Online (Sandbox Code Playgroud)

来自文档:http : //dev.mysql.com/doc/refman/5.6/en/comparison-operators.html#function_greatest

  • 哦,你是对的..我的错误..我的意思是`greatest()`而不是`least()`。谢谢 (2认同)

小智 5

IF当它为负数时,使用该语句将其设置为零.

SELECT a, b, IF(a-b<0,0,a-b) as myResult FROM test;
Run Code Online (Sandbox Code Playgroud)

这只对您的查询结果有效,它实际上并不是UPDATE表.