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

ค้นหารายการจากคีย์เวิร์ดในคอลัมน์ MySQL ด้วย LIKE

บทความนี้สาธิตการค้นหาแถวที่คอลัมน์ 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 เฉพาะ