首页 > 解决方案 > 在mysql中嵌套IF()选择?

问题描述

正常的IF()选择mysql如下:

SELECT IF(1 > 2, 2, 3);

问题:如何用附加IF()评估替换最后一个参数?

SELECT IF(1 > 2, 'bigger', IF(4 > 5, 'bigger', 'smaller'));

标签: mysqlsql

解决方案


使用case表达式!

SELECT (CASE WHEN 1 > 2 THEN 'bigger'
             WHEN 4 > 5 THEN 'bigger'
             ELSE 'smaller'
        END);

CASE表达式是 SQL 支持条件逻辑的标准方式。 IF()是特定于 MySQL(可能还有一些其他数据库)的定制功能。我强烈建议使用标准构造。


推荐阅读