2012-10-03 38 views
0

我有一個有時具有值「-1」的列的MySQL DB,在SELECT期間如何將其更改爲「0」,而不對結果執行foreach循環。基本上我想'顯示'值爲0,如果DB值爲-1。如果DB值是其他值,則應該不加修改地顯示。在SELECT中更改MySQL DB列值

任何想法???

回答

2

在App.net的朋友 「IF」 標量函數紛紛喊道:

SELECT IF(mycol=-1, 0, mycol) 

這似乎工作一種享受。 :)

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是更詳細的信息。

+0

我想如果()語句更簡單,但是,這只是我的看法。 – Zaffy

+0

@Zaffy我編輯了這篇文章,謝謝! – Parado

0

另一種選擇則case語句是IF函數如下給出

//IF(expr,if_true_expr,if_false_expr) 
SELECT IF(column = -1, 0, column) AS state FROM table