2012-07-11 47 views
1

MySQL是否可以做类似的事情:MySQL中的比较SELECT

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

并获得这样的:

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

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

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

回答

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 ExpressionsIF() Function

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

+0

太棒了,非常感谢! – JJJollyjim 2012-07-11 04:59:19

2
SELECT username, 
age, 
case when age>13 then 'true' else 'false' end AS ageGT 
FROM users