[英]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.