เมื่อต้องการนำข้อมูลมาแสดงในระบบ autocomplete สามารถใช้คำสั่ง LIKE clause ใน MySQL ได้อย่างมีประสิทธิภาพ โดยเฉพาะเมื่อต้องการค้นหาจากชื่อและนามสกุลของโรงเรียน
สร้างตารางตัวอย่าง
mysql> create table DemoTable (
SchoolName varchar(100) );
Query OK, 0 rows affected (0.56 sec)
เพิ่มข้อมูลตัวอย่าง
mysql> insert into DemoTable values('Horce Greeley'); Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('Conestoga Senior'); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Adlai E.Stevenson'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Thomas Jefferson'); Query OK, 1 row affected (0.07 sec)
แสดงข้อมูลทั้งหมด
mysql> select *from DemoTable;
ผลลัพธ์ที่ได้:
+-------------------+ | SchoolName | +-------------------+ | Horce Greeley | | Conestoga Senior | | Adlai E.Stevenson | | Thomas Jefferson | +-------------------+ 4 rows in set (0.00 sec)
คิวรี่สำหรับ Autocomplete (ค้นหาจากส่วนแรกของคำ)
mysql> select *from DemoTable where SchoolName LIKE '%Con%' and SchoolName LIKE '%Sen%';
คิวรี่นี้จะค้นหาชื่อโรงเรียนที่มีคำว่า "Con" และ "Sen" อยู่ในชื่อ โดยใช้ wildcard % เพื่อให้ค้นหาได้ในตำแหน่งใดก็ได้ของสตริง
ผลลัพธ์:
+------------------+ | SchoolName | +------------------+ | Conestoga Senior | +------------------+ 1 row in set (0.00 sec)
หมายเหตุเพิ่มเติม
- การใช้
LIKE '%keyword%'อาจช้าเมื่อตารางมีข้อมูลมาก ควรพิจารณาใช้ Full-Text Search หรือเพิ่ม Index - สำหรับ autocomplete จริง ควรจำกัดผลลัพธ์ด้วย
LIMITและเพิ่มORDER BYเพื่อประสิทธิภาพที่ดีกว่า