假设我在这个表中有一个名为“test”的mysql表我有两列“A”,“B”。 我想获得A-B的结果,但对于结果为负的每一行,我想将其设置为零。
所以我可以写: 选择test.A - test.B作为myResult
但是当myResult为负数时,我不知道如何将myResult设置为零。 请帮忙 谢谢
答案 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;