2009-10-30 82 views
56

我使用MySQL和我想要做一个排序的三元语句在我的SQL这样的:如何在MySQL select语句中编写条件?

SELECT USER_ID, ((USER_ID = 1) ? 1 : 0) AS FIRST_USER 
    FROM USER 

结果将类似于:

USER_ID | FIRST_USER 
1  | 1 
2  | 0 
3  | 0 
etc. 

怎样才能做到这一点?

回答

73
SELECT USER_ID, (CASE USER_ID WHEN 1 THEN 1 ELSE 0 END) as FIRST_USER FROM USER 
+0

谢谢,效果很好! – Langdon 2009-10-30 04:10:49

+8

这是最好的答案 - CASE是ANSI标准,查询将在SQL Server,Oracle,MySQL,Postgres上无需更改... – 2009-10-30 04:18:10

51
SELECT USER_ID, IF(USER_ID = 1, 1, 0) AS FIRST_USER FROM USER 

IF()声明的工作方式类似于三元? :运营商。

+0

我试图有条件地选择column_a或column_b(使用一个作为备用,如果另一个是空),这对我来说。谢谢! – 2015-06-09 18:55:07