MySQL 中的 If ELSE
Preet Sanghavi
2023年1月3日
2022年5月13日
在本教程中,我们旨在探索如何在 MySQL 中使用 IF ELSE
语句。
数据分析师的关键角色之一是从数据中收集见解并产生有意义的结果。它可以在几种数据过滤和可视化技术的帮助下完成。
其中之一是 IF ELSE
语句。IF ELSE
语句,顾名思义,帮助我们过滤 MySQL 数据库中特定表的数据。
这些过滤条件在语句的 IF
块中设置。如果在我们的表中输入的数据不满足特定条件,则执行 ELSE
块。
例如,在包含员工详细信息的员工表中,如果我们希望根据员工的薪水过滤员工,可以使用 MySQL 中的 IF ELSE
子句。让我们了解这种方法是如何工作的。
在开始之前,让我们通过创建一个包含几行的 student_details
表来创建一个虚拟数据集。
-- create the table student_details
CREATE TABLE student_details(
stu_id int,
stu_firstName varchar(255) DEFAULT NULL,
stu_lastName varchar(255) DEFAULT NULL,
primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName)
VALUES(1,"Preet","Sanghavi"),
(2,"Rich","John"),
(3,"Veron","Brow"),
(4,"Geo","Jos"),
(5,"Hash","Shah"),
(6,"Sachin","Parker"),
(7,"David","Miller");
要查看数据中的条目,我们使用以下代码。
SELECT * FROM student_details;
输出:
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
MySQL 中的 IF ELSE
语句
IF ELSE
技术的基本语法如下。
select column_name,
(
CASE
WHEN <condition> THEN <operation>
ELSE 1
END)
from table_x;
如上述查询所示,我们使用 case
语句和 ELSE
子句。这就是在 MySQL 中执行 IF ELSE
语句的方式。
让我们从 student_details
表中过滤数据,确保在 stu_id
大于 3
时只打印学生的姓氏而不是名字。否则,如果 stu_id
小于或等于 3
,我们将打印名字。
我们可以使用以下查询来实现这一点。
select stu_id,
(
CASE
WHEN stu_id <= 3 THEN stu_firstName
ELSE stu_lastName
END) AS filtered_data
from student_details;
输出:
stu_id filtered_data
1 Preet
2 Rich
3 Veron
4 Jos
5 Shah
6 Parker
7 Miller
注意
在上面的代码中,我们在 MySQL 中使用别名
filtered_data
和 AS
关键字来增加可读性。CASE ELSE
技术的替代方法是存储过程。可以使用 IF ELSE
块创建存储过程,但是这种方法效率非常低,并且 case
最适用于类似于上面讨论的用例。
因此,在 case
语句的帮助下,我们可以有效地实现来自任何其他编程语言的 IF ELSE
语句预期的功能,以过滤 MySQL 中的数据。
Author: Preet Sanghavi