首页 > 编程笔记

MySQL CASE语句的用法

MySQL 中 CASE 语句的格式是:

CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2]…[ELSE rn+1] END

如果 expr 值等于某个 vn,则返回对应位置 THEN 后面的结果;如果与所有值都不相等,则返回 ELSE 后面的 rn+1。

【实例】使用 CASE value WHEN 语句执行分支操作,输入语句如下:
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                                                              |
+------------------------------------------------------------------+
CASE 后面的值为 2,与第二条分支语句 WHEN 后面的值相等,因此返回结果为“two”。

对于 CASE WHEN v1 THEN r1 [WHEN v2 THEN r2]… ELSE rn+1] END,某个 vn 值为 TRUE 时,返回对应位置 THEN 后面的结果;如果所有值都不为 TRUE,则返回 ELSE 后的 rn+1。

【实例】使用 CASE WHEN 语句执行分支操作,输入语句如下:
mysql> SELECT CASE WHEN 1<0 THEN 'true' ELSE 'false' END;
+------------------------------------------------------------+
| CASE WHEN 1<0 THEN 'true' ELSE 'false' END                 |
+------------------------------------------------------------+
| false                                                      |
+------------------------------------------------------------+
1<0 的结果为 FALSE,因此函数返回值为 ELSE 后面的“false”。

提示:一个 CASE 表达式的默认返回值类型是任何返回值的相容集合类型,但具体情况视其所在的语境而定。如果用在字符串语境中,则返回结果为字符串。如果用在数字语境中,则返回结果为十进制值、实数值或整数值。

推荐阅读

副业交流群 关注微信公众号,加入副业交流群,学习变现经验,交流各种打法。