我有一个MySQL DB,其列有时值为“-1”,如何在SELECT期间将其更改为“0”而不对结果执行foreach循环。基本上,如果DB值为-1,我希望'display'值为0。如果DB值是其他任何值,则应该不加修改地显示它。
任何想法???
答案 0 :(得分:4)
您可以使用case
语法:
select case
when col = -1 then 0
else col
end case
from Tab
或
select case col
when -1 then 0
else col
end case
from Tab
Here是更多信息。
或if construct
select if(col=-1,0,col)
from Tab
Here是更多信息。
答案 1 :(得分:2)
App.net上的一位朋友插话:
SELECT IF(mycol=-1, 0, mycol)
这似乎是一种享受。 :)
答案 2 :(得分:0)
或“IF”标量函数用于缩短语法
SELECT IF (col = -1, 0, col)
FROM Tab
http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if
答案 3 :(得分:0)
另一个选项然后case语句是IF函数,如下所示
//IF(expr,if_true_expr,if_false_expr)
SELECT IF(column = -1, 0, column) AS state FROM table