HOWTO · MySQL

MySQL 中的 WHERE IN 語句

本文介紹如何在 MySQL 中使用 WHERE IN 子句。

本頁內容

在本教程中,我們旨在探索如何在 MySQL 中使用 WHERE IN 子句。

MySQL 中有許多不同的資料過濾技術。IF ELSE、CASE 和 WHERE 語句就是這樣的示例。讓我們探索本文中 WHERE IN 子句的實現細節。

WHERE IN 子句幫助我們為資料過濾設定特定條件。它接受列名和要在其中找到值的集合。查詢的 IN 部分有助於在定義的集合中查詢值。

讓我們瞭解這種方法是如何工作的。在開始之前,我們必須通過建立一個表 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 中的 WHERE IN 語句

WHERE IN 技術的基本語法如下。

SELECT * FROM name_of_the_table WHERE column_name IN <set_condition>;

讓我們嘗試從 student_details 表中過濾學生。

我們只為 stu_id 小於 3 的學生獲取記錄。使用 WHERE IN 子句,此操作可以在以下查詢的幫助下完成。

SELECT * FROM student_details WHERE stu_id IN (1,2,3);

輸出:

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow

如上面的程式碼塊所示,我們僅根據需要獲取具有 stu_id 為 1、2 或 3 的記錄。

WHERE IN 技術的替代方法是 CASE WHEN 語句。IF ELSE 儲存過程也可以用來代替 WHERE IN 子句。

因此,在帶有 IN 的 WHERE 語句的幫助下,我們可以根據 MySQL 中的任何條目可用性條件有效地過濾資料。