บทความนี้สาธิตการค้นหาแถวที่คอลัมน์ Title มีคีย์เวิร์ดเฉพาะ (เช่น 'MySQL') โดยใช้ LIKE '%keyword%' (Contains Search)
สร้างตารางและข้อมูลบทความ
mysql> CREATE TABLE DemoTable750 (Title VARCHAR(200));
Query OK, 0 rows affected (0.69 sec)
mysql> INSERT INTO DemoTable750 VALUES('Java and MongoDB,MySQL');
mysql> INSERT INTO DemoTable750 VALUES('MySQL,SQL Server');
mysql> INSERT INTO DemoTable750 VALUES('PL/SQL,Python,MongoDB');
mysql> INSERT INTO DemoTable750 VALUES('MySQL');
คิวรีค้นหาคีย์เวิร์ด 'MySQL'
mysql> SELECT * FROM DemoTable750 WHERE Title LIKE '%MySQL%';
ผลลัพธ์ (3 จาก 4 แถว มีคำว่า MySQL)
+------------------------+
| Title |
+------------------------+
| Java and MongoDB,MySQL |
| MySQL,SQL Server |
| MySQL |
+------------------------+
คำอธิบาย:
%MySQL%- มีคำว่า MySQL อยู่ตรงไหนก็ได้ในสตริง- Case-insensitive โดย Default (Collation _ci)
- แถว 'PL/SQL,Python,MongoDB' ไม่มี MySQL จึงถูกตัดออก
ประสิทธิภาพ: LIKE '%keyword% (Leading Wildcard) **ไม่สามารถใช้ Index ได้** → Full Table Scan
ทางเลือกสำหรับข้อมูลเยอะ:
- Full-Text Search (
MATCH() AGAINST()) - ต้องสร้าง Fulltext Index - Inverted Index / Search Engine (Elasticsearch, Solr)
- Generated Column + Index สำหรับ Keyword เฉพาะ