2

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

verify_id 返回一个 0-3 的整数。有没有办法在 SQL 查询中做某事,如果 verify_id 为 0,它会返回一个类似“new”的字符串,以及所有 4 个验证 ID 的不同字符串。

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

4

2 回答 2

6

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

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

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

于 2013-06-12T21:18:22.383 回答
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 字段类型,它基本上将文本字符串转换为数字,反之亦然。它是一种存储此类值的有效字段类型。

于 2013-06-12T21:22:22.313 回答