MySQL 中的 If ELSE
Preet Sanghavi
2023年1月3日
在本教程中,我們旨在探索如何在 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 中的資料。
作者: Preet Sanghavi