如何在MySQL select语句中编写条件?


70

我正在使用MySQL,并且想在SQL中执行一种三元声明,例如:

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

结果将类似于:

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

如何做到这一点?

Answers:


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

9
这是最好的答案-CASE是ANSI标准,查询可以在SQL Server,Oracle,MySQL,Postgres上进行更改而无需更改...
OMG Ponies,2009年

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

IF()语句的工作方式类似于三元?:运算符。


我试图有条件地选择column_a或column_b(如果另一个为null,则使用其中一个作为后备),这对我来说是可行的。谢谢!
未知开发人员
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.