SQL IN Operator


IN Operator อนุญาตให้คุณระบุค่าหลายค่าใน WHERE ส่วนคำสั่งเดียวและยังเป็นการ ชวเลข สำหรับหลายเงื่อนไขอย่าง OR condition

ตัวอย่าง

ส่งคืนลูกค้าทั้งหมดจาก ‘Germany’, ‘France’, or ‘UK’

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


Syntax

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);


Demo Database

ด้านล่างนี้คือการเลือกจากตาราง Customers ที่ใช้ในตัวอย่าง:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4
Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden


NOT IN

การใช้คีย์เวิร์ด NOT ข้างหน้า IN operator คุณจะส่งคืนเรคคอร์ดทั้งหมดที่ไม่ใช่ค่าใด ๆ ในรายการ

ตัวอย่าง

ส่งคืนลูกค้าทั้งหมดที่ไม่ได้มาจาก ‘Germany’, ‘France’, ot ‘UK’:

SELECT * FROM Customers
WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);


IN (SELECT)

อีกทั้งคุณยังสามารถใช้ IN กัับ subquery ใน WHERE clause ด้วย sub query คุณสามารถส่งค่าคืนเรคคอร์ดทั้งหมด

ตัวอย่าง

ส่งคืนลูกค้าทั้งหมดที่มีคำสั่งซื้อในตาราง Orders :

SELECT * FROM Customers
WHERE CustomerID IN (SELECT CustomerID FROM Orders);


NOT IN (SELECT)

ผลลัพธ์ในตัวอย่างข้างต้นส่งคืนเรคคอร์ด 74 รายการ ซึ่งหมายความว่ามีลูกค้า 17 รายที่ยังไม่ได้ส่งคำสั่งซื้อใดๆ

ให้เราตรวจสอบว่าถูกต้องหรือไม่โดยใช้ NOT IN

ตัวอย่าง

ส่งคืนลูกค้าทั้งหมดที่ไม่ได้วางคำสั่งซื้อใดๆในตาราง Orders :

SELECT * FROM Customers
WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);