IN เป็นโอเปอเรเตอร์ที่ใช้ใน SQL เพื่อตรวจสอบค่าว่าอยู่ในชุดของค่าที่กำหนดไว้หรือไม่
ใช้ได้กับข้อมูลประเภทตัวเลข ข้อความ และแม้แต่ผลลัพธ์จาก SELECT
รูปแบบคำสั่ง
SELECT column1, column2, ...
FROM table_name
WHERE column_name IN (value1, value2, value3, ...);
ตัวอย่างการใช้งาน
แสดงภาพยนตร์ที่มีเรตติ้งเป็น 'G', 'PG', หรือ 'PG-13'
SQL
SELECT title, rating
FROM film
WHERE rating IN ('G', 'PG', 'PG-13');- แสดงเฉพาะภาพยนตร์ที่
ratingอยู่ในกลุ่มค่าที่ระบุไว้
จะได้ผลลัพธ์เหมือนการกำหนดเงื่อนไขแบบนี้
WHERE rating = 'G' OR rating = 'PG' OR rating = 'PG-13';
แสดงลูกค้าที่มีรหัสที่อยู่ address_id เท่ากับ 5, 6 หรือ 7
SQL
SELECT first_name, last_name, address_id
FROM customer
WHERE address_id IN (5, 6, 7);ใช้ NOT IN เพื่อแสดงภาพยนตร์ที่ ไม่ใช่ เรต R และ NC-17
SQL
SELECT title, rating
FROM film
WHERE rating NOT IN ('R', 'NC-17');- ใช้
NOT INเพื่อ “ยกเว้น” ค่าที่ไม่ต้องการ
IN กับ Subquery
นอกจากใช้กับรายการแบบกำหนดเองแล้ว IN ยังสามารถใช้ร่วมกับผลลัพธ์จาก SELECT ย่อย (subquery) ได้ด้วย เช่น
SQL
SELECT first_name, last_name
FROM customer
WHERE customer_id IN (
SELECT customer_id
FROM payment
WHERE amount > 10
);- แสดงชื่อลูกค้าที่เคยชำระเงินมากกว่า 10 ดอลลาร์
ข้อควรระวัง: ควรหลีกเลี่ยงการใช้ IN กับ subquery ที่มี NULL เพราะอาจทำให้ผลลัพธ์ไม่ถูกต้อง