MySQL 中的 If ELSE

Preet Sanghavi 2023年1月3日
MySQL 中的 If ELSE

在本教程中,我們旨在探索如何在 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_dataAS 關鍵字來增加可讀性。

CASE ELSE 技術的替代方法是儲存過程。可以使用 IF ELSE 塊建立儲存過程,但是這種方法效率非常低,並且 case 最適用於類似於上面討論的用例。

因此,在 case 語句的幫助下,我們可以有效地實現來自任何其他程式語言的 IF ELSE 語句預期的功能,以過濾 MySQL 中的資料。

作者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub