บทความนี้เปรียบเทียบการใช้ LIKE และ REGEXP ในการค้นหาข้อมูลเฉพาะค่าใน MySQL ทั้งสองวิธีให้ผลลัพธ์เหมือนกันสำหรับการค้นหาค่าที่ตรงกันพอดี (Exact Match)
สร้างตารางและข้อมูลทดสอบ
mysql> CREATE TABLE DemoTable651 (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Value VARCHAR(100)
);
Query OK, 0 rows affected (0.59 sec)
mysql> INSERT INTO DemoTable651(Value) VALUES('Title');
mysql> INSERT INTO DemoTable651(Value) VALUES('course');
mysql> INSERT INTO DemoTable651(Value) VALUES('subject');
ค้นหาด้วย LIKE
mysql> SELECT * FROM DemoTable651 WHERE Value LIKE 'course';
+----+--------+
| Id | Value |
+----+--------+
| 2 | course |
+----+--------+
ค้นหาด้วย REGEXP
mysql> SELECT * FROM DemoTable651 WHERE Value REGEXP 'course';
+----+--------+
| Id | Value |
+----+--------+
| 2 | course |
+----+--------+
ความแตกต่าง:
LIKE- ใช้สำหรับ Pattern Matching แบบง่าย (Wildcard:%,_)REGEXP- ใช้ Regular Expression อันทรงพลังกว่า รองรับ Pattern ซับซ้อน- สำหรับค้นหาค่าตรงกันพอดี ทั้งสองให้ผลเหมือนกัน