Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธี SELECT หลายค่าใน MySQL ด้วย OR และ IN

สองวิธีหลักสำหรับเลือกหลายค่า

กรณีที่ 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);

ผลลัพธ์ทั้งสองวิธีเหมือนกัน

BookIdBookName
104Introduction to Python
106C in Depth

เปรียบเทียบ OR vs IN

ด้านORIN
ความอ่านง่ายยาวเมื่อเงื่อนไขเยอะกระชับ อ่านง่าย
ประสิทธิภาพ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'))