简体   繁体   English

在mySQL中是否存在带有IF / ELSE语句的SELECT?

[英]Is there such thing as a SELECT with an IF/ELSE statement in mySQL?

Is it possible to have a SELECT statement in mySQL with an IF/ELSE clause in it? 是否可以在mySQL中使用带有IF / ELSE子句的SELECT语句?

Eg 例如

I want to SELECT all table rows and return color2 ONLY if color2 is 'brown'. 我想SELECT所有表行并返回color2 ONLY如果color2是'棕色'。 My example SQL select statement of what I would like to accomplish is below. 我想要完成的我的示例SQL select语句如下所示。

APPLES
+------+--------+----------+----------+  
|  ID  |  NAME  |  COLOR1  |  COLOR2  |  
+------+--------+----------+----------+  
|  1   | apple1 |    red   |   brown  |
+------+--------+----------+----------+  
|  2   | apple2 |    red   |   green  |
+------+--------+----------+----------+

SELECT name, (IF color2 = 'brown' SELECT color2 ELSE SELECT color1) AS color FROM apples SELECT name,(IF color2 ='brown'SELECT color2 ELSE SELECT color1)AS颜色来自苹果

would return: 会回来:

+----------+----------+
|  apple1  |   brown  |
+----------+----------+
|  apple2  |    red   |
+----------+----------+

MySQL有一个IF()函数:

SELECT name, IF(color2='brown', color2, color1) AS color FROM apples

Use: 采用:

SELECT a.name, 
       CASE WHEN a.color2 = 'brown' THEN a.color2 ELSE a.color1 END AS color 
  FROM apples a

Reference: CASE 参考: CASE

The CASE statement allows for IF/ELSE or SWITCH-like functionality, and has the benefit of being ANSI standard. CASE语句允许IF / ELSE或类似SWITCH的功能,并且具有ANSI标准的优点。 That query would work on SQL Server, Oracle, MySQL... 该查询适用于SQL Server,Oracle,MySQL ......

查看MySQL参考手册中CASE语句。

控制流功能文档应该可以帮助您。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM