簡體   English   中英

在mySQL中是否存在帶有IF / ELSE語句的SELECT?

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

是否可以在mySQL中使用帶有IF / ELSE子句的SELECT語句?

例如

我想SELECT所有表行並返回color2 ONLY如果color2是'棕色'。 我想要完成的我的示例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顏色來自蘋果

會回來:

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

MySQL有一個IF()函數:

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

采用:

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

參考: CASE

CASE語句允許IF / ELSE或類似SWITCH的功能,並且具有ANSI標准的優點。 該查詢適用於SQL Server,Oracle,MySQL ......

查看MySQL參考手冊中CASE語句。

控制流功能文檔應該可以幫助您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM