所以我有一个相当长的复杂查询,但要点是查询的基本功能看起来像这样SELECT verification_id FROM verification_table
verify_id 返回一个 0-3 的整数。有没有办法在 SQL 查询中做某事,如果 verify_id 为 0,它会返回一个类似“new”的字符串,以及所有 4 个验证 ID 的不同字符串。
我可以通过 PHP 在后端执行此操作,但我想知道是否有办法通过 MySQL 执行此操作
所以我有一个相当长的复杂查询,但要点是查询的基本功能看起来像这样SELECT verification_id FROM verification_table
verify_id 返回一个 0-3 的整数。有没有办法在 SQL 查询中做某事,如果 verify_id 为 0,它会返回一个类似“new”的字符串,以及所有 4 个验证 ID 的不同字符串。
我可以通过 PHP 在后端执行此操作,但我想知道是否有办法通过 MySQL 执行此操作
你想要一个案例陈述。它可用于布尔条件以及在多个结果之间进行选择...
SELECT [Condition]
CASE WHEN TRUE THEN 'True'
ELSE 'False'
END
FROM [Table]
注意每个分支的返回类型必须相同——列只能是一种类型
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 字段类型,它基本上将文本字符串转换为数字,反之亦然。它是一种存储此类值的有效字段类型。