เพื่อประสิทธิภาพที่ดีขึ้น แนะนำให้ใช้ Regular Expression (REGEXP) แทนการรวม LIKE และ IN
สร้างตารางตัวอย่าง
mysql> CREATE TABLE DemoTable (
-> Name VARCHAR(30)
-> );
เพิ่มข้อมูลตัวอย่าง
mysql> INSERT INTO DemoTable VALUES('John');
mysql> INSERT INTO DemoTable VALUES('Chris');
mysql> INSERT INTO DemoTable VALUES('Robert');
mysql> INSERT INTO DemoTable VALUES('David');
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+--------+ | Name | +--------+ | John | | Chris | | Robert | | David | +--------+
ใช้ REGEXP แทน LIKE และ IN
mysql> SELECT * FROM DemoTable WHERE Name REGEXP 'John|Robert|David';
ผลลัพธ์:
+--------+ | Name | +--------+ | John | | Robert | | David | +--------+
คำอธิบาย: ใช้เครื่องหมาย | (OR) ใน REGEXP เพื่อค้นหาค่าหลายค่าในครั้งเดียว วิธีนี้มีประสิทธิภาพและอ่านง่ายกว่าการเขียน WHERE Name LIKE 'John' OR Name LIKE 'Robert' OR Name LIKE 'David' หรือใช้ IN ร่วมกับ LIKE ซึ่ง MySQL ไม่รองรับโดยตรง