1

MySQL是否可以执行以下操作:

SELECT username, age, age>13 AS ageGT FROM users.

并得到类似的东西:

+--------+---+-----+
|username|age|ageGT|
+--------+---+-----+
|fred    |14 |true |
|bob     |12 |false|
+--------+---+-----+

?

这将是一个巨大的帮助,谢谢!

澄清:我不是在寻找一个WHERE子句,我想选择这两种情况,但有一列显示该子句的评估结果是真还是假。

4

2 回答 2

6

你可以这样做CASE WHEN age > 13 THEN 'true' ELSE 'false' END AS ageGT

SELECT 
    username, 
    age, 
    CASE WHEN age > 13 THEN 'true' ELSE 'false' END AS ageGT
FROM users

或者更简单地说:

IF(age>13, 'true', 'false') AS ageGT

阅读有关CASE 表达式IF() 函数的更多信息。

一个重要的区别是CASE所有主要的 DBMS 都支持表达式语法,而IF()几乎是特定于 MySQL 的。

于 2012-07-11T04:57:23.527 回答
2
SELECT username, 
age, 
case when age>13 then 'true' else 'false' end AS ageGT 
FROM users
于 2012-07-11T04:59:10.887 回答