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

时间:2015-06-18 20:07:17

标签: php mysql

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

所以我可以写: 选择test.A - test.B作为myResult

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

3 个答案:

答案 0 :(得分:5)

使用IF语句将其设置为零。

SELECT a, b, IF(a-b<0,0,a-b) as myResult FROM test;

这只对您的查询结果有效,它实际上并非UPDATE表格。

答案 1 :(得分:4)

为什么总是让事情变得复杂?

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

select greatest(0, test.A-test.B) as myResult from test;

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

答案 2 :(得分:1)

select case when test.A - test.B >= 0 then test.A - test.B else 0 end as myResult from test;