ใน MySQL ไม่ต้องใช้ WHERE หลายครั้ง สามารถรวมเงื่อนไขหลายอย่างใน WHERE เดียวกันได้โดยใช้ตัวดำเนินการ AND หรือ OR ร่วมกับ LIKE
รูปแบบคำสั่ง
SELECT * FROM table_name
WHERE column1 LIKE 'pattern1'
AND column2 LIKE 'pattern2';
ตัวอย่างการใช้งาน
1. สร้างตารางและเพิ่มข้อมูล
CREATE TABLE WhereDemo (
Id INT,
Name VARCHAR(20)
);
INSERT INTO WhereDemo VALUES
(101, 'Maxwell'),
(110, 'David'),
(1000, 'Carol'),
(1100, 'Bob'),
(115, 'Sam');
ข้อมูลในตาราง:
+------+---------+
| Id | Name |
+------+---------+
| 101 | Maxwell |
| 110 | David |
| 1000 | Carol |
| 1100 | Bob |
| 115 | Sam |
+------+---------+
2. ค้นหาด้วย LIKE หลายเงื่อนไข (AND)
SELECT * FROM WhereDemo
WHERE Id LIKE '%1100%'
AND Name LIKE '%Bob%';
ผลลัพธ์:
+------+------+
| Id | Name |
+------+------+
| 1100 | Bob |
+------+------+
ตัวอย่างเพิ่มเติม
ใช้ OR (ตรงเงื่อนไขใดเงื่อนไขหนึ่ง)
SELECT * FROM WhereDemo
WHERE Id LIKE '1%'
OR Name LIKE '%a%';
หาแถวที่ Id เริ่มต้น 1 หรือ Name มีตัว 'a'
ใช้ NOT LIKE
SELECT * FROM WhereDemo
WHERE Name NOT LIKE '%o%';
หาแถวที่ Name ไม่มี ตัว 'o'
รวม AND/OR พร้อมวงเล็บ
SELECT * FROM WhereDemo
WHERE (Id LIKE '1%' OR Id LIKE '2%')
AND Name NOT LIKE '%x%';
เคล็ดลับการใช้ LIKE
%- แทนตัวอักษร 0 หรือมากกว่า_- แทนตัวอักษรเพียง 1 ตัว- ค้นหาตัวอักษรจริง
%หรือ_ให้ใช้ escape:LIKE '%\%%' ESCAPE '\' - MySQL เริ่มต้นไม่ case-sensitive (ใช้
COLLATE utf8mb4_binหรือBINARYหากต้องการ case-sensitive)
การรวมเงื่อนไขใน WHERE เดียวทำให้โค้ดอ่านง่าย ประสิทธิภาพดีกว่า และหลีกเลี่ยงข้อผิดพลาดได้