2011-11-13 82 views
0

如何在MYSQL查詢中使用if語句返回yes如果爲真,如果不是則返回no比較mysql查詢中的字段

見例如:

IF(table_name.field_name_value = 1, 'yes','no') AS active

我想是這樣的,但沒有成功

+0

你所說的 「_with沒有success_」 意思?你想說「_這不是working_」? – Tadeck

+0

請告訴我們它是如何工作的,以及預期的結果是什麼,如果你想讓你的問題得到解決,請。 – Tadeck

+0

@Tadeck,當我打印活動時它不顯示任何東西 – revo

回答

1

documentation on IF() function

mysql> SELECT IF(1<2,'yes','no'); 
     -> 'yes' 

所以,基本上,語法是如上所述。

編輯:

你是在說我的例子是不正確。因此,我爲您提供一個證明(證明我上面提到的文檔中的示例):

我有一個表,其中包含uid列,其中包含用戶的ID。該表是某個站點上數據庫的一部分(與此無關)。當我提出以下查詢:

SELECT `uid`, IF(`uid`=3, 'yes', 'no') AS `active` FROM `mysite_users`; 

我收到以下結果:

+-----+--------+ 
| uid | active | 
+-----+--------+ 
| 0 | no  | 
| 1 | no  | 
| 3 | yes | 
| 8 | no  | 
| 9 | no  | 
| 10 | no  | 
| 11 | no  | 
| 12 | no  | 
| 13 | no  | 
| 14 | no  | 
| 15 | no  | 
+-----+--------+ 
11 rows in set (0,00 sec) 

這是我希望什麼(什麼應該閱讀文檔後預期)。它還不適合你嗎?

+0

我試圖比較一個字段值與靜態數字,正如我上面所說。我的例子是不正確的,所以你的! – revo

+0

@Revo:這不是我的例子,它是來自文檔**的一個**示例(請參閱我的答案中的鏈接頁),那麼它怎麼會不正確?你有沒有檢查過它? – Tadeck

+0

問題是使用** AS **! – revo

1

可以使用case功能:

select case 
    when table_name.field_name_value = 1 then 'yes' 
    else 'no' 
    end case as active 
    from table_name 

雖然if功能也應工作。你能發佈完整的查詢嗎?

1

你可以在mysql查詢中使用CASE。 像

 
CASE WHEN table_name.field_name_valud = 1 THEN 'Yes' ELSE 'No' END As active