有没有办法在SQL查询中执行条件逻辑?

时间:2013-06-12 21:14:47

标签: php mysql sql if-statement

所以我有一个相当长的复杂查询,但要点是查询的基本功能看起来像这样SELECT verification_id FROM verification_table

verification_id返回0-3之间的整数。有没有办法在SQL查询中执行某些操作,如果verify_id为0,则返回类似“new”的字符串,并为所有4个verification_id返回不同的字符串。

我可以通过PHP在后端执行此操作,但我想知道是否有办法通过MySQL进行此操作

2 个答案:

答案 0 :(得分:6)

你想要一个案例陈述。它可以用于布尔条件以及在多个结果之间进行选择......

SELECT [Condition]
    CASE WHEN TRUE THEN 'True'
    ELSE 'False'
END 
FROM [Table]

请注意,每个分支的返回类型必须相同 - 该列只能是一种类型

答案 1 :(得分:3)

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字段类型,它基本上将文本字符串转换为数字,反之亦然。它是存储此类值的有效字段类型。