MySQL CASE 表达式

17 Mar 2025 | 阅读 2 分钟

MySQL CASE 表达式是控制流函数的一部分,它允许我们在查询中编写 if-else 或 if-then-else 逻辑。这个表达式可以在任何使用有效程序或查询的地方使用,例如 SELECT、WHERE、ORDER BY 子句等。

CASE 表达式会验证各种条件,并在第一个条件为 true 时返回结果。一旦满足条件,它就会停止遍历并给出输出。如果找不到任何条件为 true,它将执行 else 块。当找不到 else 块时,它将返回 NULL 值。 MySQL CASE 语句的主要目标是在 SELECT 子句中处理多个 IF 语句。

我们可以使用两种方式来使用 CASE 语句,如下所示

1. 简单 CASE 语句

第一种方法是取一个值并将其与给定的语句进行匹配,如下所示。

语法

当第一个 compare_value 比较为 true 时,它返回结果。否则,它将返回 else 子句。

示例

输出

成功执行上述命令后,我们将看到以下输出。

MySQL CASE Expression

2. 搜索 CASE 语句

第二种方法是在 WHEN 子句中考虑一个 search_condition,如果找到,则在相应的 THEN 子句中返回结果。否则,它将返回 else 子句。如果未指定 else 子句,则返回 NULL 值。

语法

示例

输出

MySQL CASE Expression

返回值

CASE 表达式根据其使用上下文返回结果。例如

  • 如果它在字符串上下文中被使用,它将返回字符串结果。
  • 如果它在数字上下文中被使用,它将返回整数、浮点数、十进制值。

MySQL 版本支持

CASE 语句可以支持以下 MySQL 版本

  • MySQL 8.0
  • MySQL 5.7
  • MySQL 5.6
  • MySQL 5.5
  • MySQL 5.1
  • MySQL 5.0
  • MySQL 4.1
  • MySQL 4.0
  • MySQL 3.23.3

让我们创建一个名为 'students' 的表,并在此表上执行 CASE 语句。

MySQL CASE Expression

在上面的表中,我们可以看到 class 列 包含学生系的缩写。因此,我们将把系的缩写更改为全称。现在,执行以下查询来执行此操作。

成功执行上述查询后,我们将得到以下输出。在这里,我们可以看到 department 列 包含全称而不是缩写。

MySQL CASE Expression


下一主题MySQL IF 语句