所以我有一个相当长的复杂查询,但要点是查询的基本功能看起来像这样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