在SELECT中更改MySQL DB列值

时间:2012-10-03 13:35:01

标签: php mysql sql

我有一个MySQL DB,其列有时值为“-1”,如何在SELECT期间将其更改为“0”而不对结果执行foreach循环。基本上,如果DB值为-1,我希望'display'值为0。如果DB值是其他任何值,则应该不加修改地显示它。

任何想法???

4 个答案:

答案 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