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

ใช้ LIKE และ IN ร่วมกันในคำสั่ง MySQL เดียวได้หรือไม่

เพื่อประสิทธิภาพที่ดีขึ้น แนะนำให้ใช้ 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 ไม่รองรับโดยตรง