当前位置:网络安全 > MySQL CASE 表达式

MySQL CASE 表达式

  • 发布:2023-10-02 22:07

MySQL CASE 表达式

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

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

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

1。简单的 CASE 语句:

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

语法

CASE值
    WHEN [compare_value] THEN 结果
    [当[比较值] 那么结果...]
    [其他结果]
END

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

示例

mysql> SELECT CASE 1 WHEN 1 THEN '一' WHEN 2 THEN '二' ELSE '更多' END;

输出

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

2。搜索 CASE 语句:

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

语法

案例
    WHEN [条件] THEN 结果
    [当[条件]那么结果...][其他结果]
END

示例

mysql> 选择大小写二进制 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;

输出

返回类型

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

让我们创建一个“Student”表并在该表上执行 CASE 语句。

在上表中,我们可以看到“班级”一栏包含了学生院系的缩写。这就是为什么我们要使用完整的表格来更改部门的简称。现在,执行以下查询来执行此操作。

选择学生ID,名字,
 案例类
    当“CS”那么“计算机科学”
    当“EC”时,那么“电子和通信”
    其他“电气工程”
ENDAS系学生;

成功执行上述查询后,我们将得到以下输出。在这里我们可以看到 Department 列包含完整格式而不是短格式。

相关文章