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 秒)