博客
关于我
mysql函数汇总之条件判断函数
阅读量:789 次
发布时间:2023-02-12

本文共 2212 字,大约阅读时间需要 7 分钟。

MySQL 条件判断函数详解

1. IF(expr, v1, v2) 函数

IF(expr, v1, v2) 函数用于根据表达式 expr 的值返回相应的结果。如果 expr 的值为非 null 且不为 0,函数返回 v1;否则返回 v2。

示例

mysql> SELECT IF(1 > 2, 2, 3), IF(1 < 2, 'yes', 'no');+----------------+-----------------------+| IF(1 > 2, 2, 3) | IF(1 < 2, 'yes', 'no') |+----------------+-----------------------+| 3                | yes                    |+----------------+-----------------------+1 row in set (0.00 sec)

小提示

  • 如果 v1 或 v2 中只有一个为 null,则函数返回的是非 null 表达式的结果类型。

2. IFNULL(v1, v2) 函数

IFNULL(v1, v2) 函数用于判断 v1 是否为 null。如果 v1 不为 null,则返回 v1;否则返回 v2。

示例

mysql> SELECT IFNULL(1, 2), IFNULL(null, 'yunweijia'), IFNULL(1/0, 'heihei');+--------------+---------------------------+-----------------------+| IFNULL(1, 2)  | IFNULL(null, 'yunweijia') | IFNULL(1/0, 'heihei') |+--------------+---------------------------+-----------------------+| 1             | yunweijia                 | heihei                |+--------------+---------------------------+-----------------------+1 row in set (0.00 sec)

小提示

  • IFNULL 函数的返回值类型取决于其所在的上下文,可能是数字或字符串。

3. CASE 函数

CASE 函数用于根据 expr 的值选择对应的结果。语法格式为:case expr when value then result [when another_value then another_result] ... else default_result end

如果 expr 的值等于某个 value,则返回对应的 result;如果与所有值都不相等,则返回 default_result。

示例

mysql> SELECT CASE 2 WHEN 1 THEN 'one' WHEN '2' THEN 'two' ELSE 'more' END;+--------------------------------------------------------------+| CASE 2 WHEN 1 THEN 'one' WHEN '2' THEN 'two' ELSE 'more' END |+--------------------------------------------------------------+| two                                                          |+--------------------------------------------------------------+1 row in set (0.00 sec)

示例

mysql> SELECT CASE 5 WHEN 1 THEN 'one' WHEN '2' THEN 'two' ELSE 'more' END;+--------------------------------------------------------------+| CASE 5 WHEN 1 THEN 'one' WHEN '2' THEN 'two' ELSE 'more' END |+--------------------------------------------------------------+| more                                                         |+--------------------------------------------------------------+1 row in set (0.00 sec)

小提示

  • CASE 函数的默认返回值类型与其所在的上下文一致。
  • 可以将 CASE 函数视为类似 SHELL 中的 if 语句。

以上内容可根据实际需求进行扩展和优化。如需了解更多技术内容,请关注 "运维家" 微信公众号,获取最新文章。

转载地址:http://wlbfk.baihongyu.com/

你可能感兴趣的文章