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

การใช้ LIKE clause ใน MySQL สำหรับ Autocomplete จากชื่อโรงเรียน

เมื่อต้องการนำข้อมูลมาแสดงในระบบ 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 เพื่อประสิทธิภาพที่ดีกว่า