MySQL 如何使用OR条件实现MySQL CASE
以下是MySQL CASE OR条件的语法
<SELECT yourColumnName1,.....N ,
CASE WHEN yourColumnName2=0 or yourColumnName2IS NULL THEN 'yourMessage1'
ELSE 'yourMessage2'
END AS yourAliasName
FROM yourTableName>;
为了理解上述语法,让我们创建一个表。创建表的查询语句如下:
mysql> create table ReservationSystems
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(20),
-> isSeatConfirmed tinyint
-> );
查询 OK,0行受影响(0.61 秒)
使用insert命令将一些记录插入表中。
查询如下
mysql> insert into ReservationSystems(Name,isSeatConfirmed) values('Larry',0);
查询 OK,1行受影响(0.12 秒)
mysql> insert into ReservationSystems(Name,isSeatConfirmed) values('Bob',1);
查询 OK,1行受影响(0.15 秒)
mysql> insert into ReservationSystems(Name,isSeatConfirmed) values('Mike',NULL);
查询 OK,1行受影响(0.14 秒)
mysql> insert into ReservationSystems(Name,isSeatConfirmed) values('David',1);
查询 OK,1行受影响(0.17 秒)
mysql> insert into ReservationSystems(Name,isSeatConfirmed) values('Carol',0);
查询 OK,1行受影响(0.19 秒)
mysql> insert into ReservationSystems(Name,isSeatConfirmed) values('James',1);
查询 OK,1行受影响(0.11 秒)
使用select语句显示表中的所有记录。
查询如下
mysql> select *from ReservationSystems;
结果如下
+----+-------+-----------------+
| Id | Name | isSeatConfirmed |
+----+-------+-----------------+
| 1 | Larry | 0 |
| 2 | Bob | 1 |
| 3 | Mike | NULL |
| 4 | David | 1 |
| 5 | Carol | 0 |
| 6 | James | 1 |
+----+-------+-----------------+
6 rows in set (0.00 sec)
以下是具有OR条件的MySQL CASE
mysql> select Name,
-> CASE WHEN isSeatConfirmed=0 or isSeatConfirmed IS NULL THEN 'YOUR SEAT IS NOT CONFIRMED'
-> ELSE 'YOUR SEAT IS CONFIRMED'
-> END AS SEATCONFIRMSTATUS
-> FROM ReservationSystems;
结果如下
+-------+----------------------------+
| Name | SEATCONFIRMSTATUS |
+-------+----------------------------+
| Larry | YOUR SEAT IS NOT CONFIRMED |
| Bob | YOUR SEAT IS CONFIRMED |
| Mike | YOUR SEAT IS NOT CONFIRMED |
| David | YOUR SEAT IS CONFIRMED |
| Carol | YOUR SEAT IS NOT CONFIRMED |
| James | YOUR SEAT ISCONFIRMED |
+-------+----------------------------+
6 rows in set (0.00 sec)
阅读更多:MySQL 教程
极客教程