MySQL CASE 如何工作?

MySQL CASE 如何工作?

MySQL CASE 像 switch 语句一样工作。CASE 的语法如下−

阅读更多:MySQL 教程

Case 1 − 比较语句

Case
when 任何比较语句 then 值1
when 任何比较语句 then 值2
.
.
N
else 任何值
end as 任何变量名;

Case 2 − 条件

第二种语法可用于只选择一列时。语法如下−

case 您的列名
when 条件1 then 结果1
when 条件1 then 结果2
.
.
N
else 任何值
end;

为了理解上述概念,让我们使用 select 语句。

Case 1

查询如下所示−

mysql> select
   -> case when 45 < 55 then '55 比 45 大'
   -> when 10!=11 then '10 不等于 11'
   -> else '默认情况'
   -> end as 结果;

输出

+-----------------------+
| 结果                |
+-----------------------+
| 55 比 45 大 |
+-----------------------+
1 行受影响 (0.00 秒)

Case 2

让我们创建一张表以理解第二种语法。

创建表的查询如下−

mysql> create table CaseDemo
   -> (
   -> Id int,
   -> Name varchar(100)
   -> );
查询成功,0 行受影响 (0.93 秒)

使用 insert 命令在表中插入一些记录。查询如下−

mysql> insert into CaseDemo values(1,'John');
查询成功,1 行受影响 (0.43 秒)

mysql> insert into CaseDemo values(2,'Sam');
查询成功,1 行受影响 (0.16 秒)

通过 select 语句显示表中的所有记录。查询如下−

mysql> select *from CaseDemo;

输出

+------+------+
| Id   | Name |
+------+------+
|    1 | John |
|    2 | Sam  |
+------+------+
2 rows in set (0.00 sec)

下面是 CASE 的第二个查询,可用于仅使用一个值。查询如下−

mysql> select case name
-> when 'John' then '他的名字是 John'
-> when 'Sam' then '他的名字是 Sam'
-> else -1
-> end as 结果
-> from CaseDemo;

输出

+------------------+
| 结果           |
+------------------+
| 他的名字是 John |
| 他的名字是 Sam  |
+------------------+
2 行受影响 (0.00 秒)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程