https://www.w3schools.com/sql/sql_in.asp

IN運算子是多個 OR 條件的簡寫,可以允許我們在一個子句中指定多個值 WHERE。

IN 語法

SELECT $column_name1, $column_name2, $column_name3,...
FROM $table_name
WHERE $column_name IN ($value1, $value2, ...);

SELECT $column_name1, $column_name2, $column_name3,...
FROM $table_name
WHERE column_name IN (SELECT STATEMENT);

使用情境

IN運算子理解很簡單,因為就是指多個 OR 的應用,舉例來說,如果今天要從 Customers table 篩選出 Country 為 'Germany' 的資料集,可以這樣寫:

SELECT * FROM Customers
WHERE Country = 'Germany';

那如果今天需求變動,需要多查找 Country 為 'Germany' 或者 'France',那可以這樣寫:

SELECT * FROM Customers
WHERE Country = 'Germany'
 OR Country = 'France';

那...如果今天需求繼續變動,還需要多查找 Country 為 'UK' 呢:

SELECT * FROM Customers
WHERE Country = 'Germany'
 OR Country = 'France'
  OR Country = 'UK';

這樣接續實在太麻煩了,這時就是 IN 出場時候,只需要在原本的 Country = 改成 Country IN,這樣就能很好的精簡 SQL 語法。

SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');

這樣的寫法等於上面兩個 OR ,查詢的資料結果是一模一樣。

同樣地,上面只有一個 OR 'France' 的寫法也能改成

SELECT * FROM Customers
WHERE Country IN ('Germany', 'France');

查詢的資料結果也是一模一樣呦。