สองวิธีหลักสำหรับเลือกหลายค่า
กรณีที่ 1: ใช้ OR Operator
SELECT * FROM your_table_name
WHERE your_column = value1
OR your_column = value2
OR your_column = value3;
กรณีที่ 2: ใช้ IN Operator (แนะนำ)
SELECT * FROM your_table_name
WHERE your_column IN (value1, value2, value3);
ตัวอย่างการใช้งานจริง
1. สร้างตารางหนังสือ
CREATE TABLE selectMultipleValues (
BookId INT,
BookName VARCHAR(200)
);
2. เพิ่มข้อมูล
INSERT INTO selectMultipleValues VALUES
(100, 'Introduction to C'),
(101, 'Introduction to C++'),
(103, 'Introduction to Java'),
(104, 'Introduction to Python'),
(105, 'Introduction to C#'),
(106, 'C in Depth');
3. ใช้ OR Operator
SELECT * FROM selectMultipleValues
WHERE BookId = 104 OR BookId = 106;
4. ใช้ IN Operator
SELECT * FROM selectMultipleValues
WHERE BookId IN (104, 106);
ผลลัพธ์ทั้งสองวิธีเหมือนกัน
| BookId | BookName |
| 104 | Introduction to Python |
| 106 | C in Depth |
เปรียบเทียบ OR vs IN
| ด้าน | OR | IN |
| ความอ่านง่าย | ยาวเมื่อเงื่อนไขเยอะ | กระชับ อ่านง่าย |
| ประสิทธิภาพ | Optimizer แปลงเป็น IN เอง | Optimize ได้ดีกว่า |
| Maintenance | แก้ไขยุ่งยาก | เพิ่ม/ลดค่าง่าย |
| Subquery | ยาก | รองรับ: IN (SELECT ...) |
| NULL Handling | ต้องระวัง | IN (NULL, ...) → UNKNOWN |
ข้อควรระวัง
- ⚠️
NOT IN (..., NULL) จะคืนค่า Empty Set เสมอ (ใช้ NOT EXISTS แทน)
- 📋 รายการใน IN() ควรไม่เกินพันรายการ (Performance)
- 🔧 ใช้
VALUES ROW() สำหรับหลายคอลัมน์: WHERE (col1, col2) IN ((1,'a'), (2,'b'))