有没有一种方法在mysql查询中应用一种三元运算符?

时间:2014-03-03 16:38:01

标签: mysql

有可能在mysql中做这样的事情: SELECT foo, bar, (created_at > '2012-12-12' ? 'actual': 'old') FROM table;,是否有允许我这样做的功能?

2 个答案:

答案 0 :(得分:1)

IF是一种(稍微)更冗长的方式来做你想做的事情:

SELECT foo, bar, IF(created_at > '2012-12-12','actual','old') FROM table;

答案 1 :(得分:1)

您可以使用MySQL特定的IF;

SELECT foo, bar, IF(created_at > '2012-12-12', 'actual', 'old') 
FROM table1

(SQLFiddle)

...或者您可以使用ANSI标准的CASE,并且几乎适用于任何SQL方言(Oracle / SQL Server / PostgreSQL /...)。

SELECT foo, bar, CASE WHEN created_at > '2012-12-12'
                      THEN 'actual' 
                      ELSE 'old' 
                 END 
FROM table1

(SQLfiddle)