การค้นหาข้อความด้วย LIKE
ใช้ LIKE '%keyword%' เพื่อค้นหาแถวที่คอลัมน์มีคำที่ต้องการอยู่ภายใน
ตัวอย่าง: ตาราง Comments
mysql> create table DemoTable812(Comments text);
Query OK, 0 rows affected (0.61 sec)
mysql> insert into DemoTable812 values('Good Looking');
mysql> insert into DemoTable812 values('Awesome');
mysql> insert into DemoTable812 values('Looking Gorgeous');
mysql> insert into DemoTable812 values('Good Luck');
mysql> insert into DemoTable812 values('Have a nice day');
ค้นหาข้อความที่มีคำว่า "Look"
mysql> select * from DemoTable812 where Comments LIKE '%Look%';
ผลลัพธ์:
+------------------+
| Comments |
+------------------+
| Good Looking |
| Looking Gorgeous |
+------------------+
การประยุกต์ใช้ในระบบค้นหาจริง
-- ค้นหาจากหลายคอลัมน์
SELECT * FROM products
WHERE name LIKE '%keyword%'
OR description LIKE '%keyword%'
OR tags LIKE '%keyword%';
-- ค้นหาแบบไม่สนใจพิมพ์เล็กใหญ่ (Default ของ MySQL)
SELECT * FROM articles WHERE title LIKE '%mysql%';
ข้อจำกัดและการเพิ่มประสิทธิภาพ
LIKE '%text%'(นำหน้าด้วย %) ไม่สามารถใช้ Index ได้ (Full table scan)- สำหรับข้อมูลเยอะ ควรใช้ Full-Text Search (
MATCH() AGAINST()) หรือ Elasticsearch LIKE 'text%'(นำหน้าคงที่) ใช้ Index ได้
สรุป
LIKE '%keyword%' ใช้ง่าย เหมาะข้อมูลน้อย-ปานกลาง สำหรับระบบค้นหาจริงขนาดใหญ่ ควรใช้ Full-Text Index หรือ Search Engine เฉพาะทาง