mysql - 在mysql中嵌套IF()选择?
问题描述
正常的IF()
选择mysql
如下:
SELECT IF(1 > 2, 2, 3);
问题:如何用附加IF()
评估替换最后一个参数?
SELECT IF(1 > 2, 'bigger', IF(4 > 5, 'bigger', 'smaller'));
解决方案
使用case
表达式!
SELECT (CASE WHEN 1 > 2 THEN 'bigger'
WHEN 4 > 5 THEN 'bigger'
ELSE 'smaller'
END);
CASE
表达式是 SQL 支持条件逻辑的标准方式。 IF()
是特定于 MySQL(可能还有一些其他数据库)的定制功能。我强烈建议使用标准构造。