所以我有一個相當長的複雜查詢,但要點是查詢的基本功能看起來像這樣SELECT verification_id FROM verification_table
有沒有辦法在SQL查詢中執行條件邏輯?
verification_id返回一個0-3的整數。有沒有辦法在SQL查詢中執行某些操作,如果verification_id爲0,則返回一個字符串,如「new」,對於所有的4個verification_id都返回不同的字符串。
我能做到這一點通過PHP後端,但我想知道是否有辦法通過MySQL的
所以我有一個相當長的複雜查詢,但要點是查詢的基本功能看起來像這樣SELECT verification_id FROM verification_table
有沒有辦法在SQL查詢中執行條件邏輯?
verification_id返回一個0-3的整數。有沒有辦法在SQL查詢中執行某些操作,如果verification_id爲0,則返回一個字符串,如「new」,對於所有的4個verification_id都返回不同的字符串。
我能做到這一點通過PHP後端,但我想知道是否有辦法通過MySQL的
SELECT CASE
WHEN verification_id = 0 THEN 'new'
WHEN verification_id = 1 THEN 'something else'
ELSE 'error?'
END AS myvalue
FROM verification_table
這樣的事情應該工作。
儘管您可能會考慮使用mysql ENUM字段類型,它基本上將文本字符串轉換爲數字,反之亦然。這是存儲這些值的有效字段類型。
'WHEN verification_id = 0'兩次。錯字? – Basic
是...複製n貼魔鬼... –
看看IF()這裏:http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if你可以使用嵌套的IFs,像SELECT IF(STRCMP(verification_id ,'A'),'IS A',IF(STRCMP(verification_id,'B','IS B','IS NOT A NOR B')); – kiewic