คำอธิบาย
ใช้ LIKE 'prefix%' (ไม่มี % นำหน้า) เพื่อค้นหาค่าที่ขึ้นต้นด้วยข้อความที่กำหนด
ขั้นตอนการสร้างตารางและข้อมูลตัวอย่าง
mysql> create table DemoTable (
FirstName varchar(40) );
Query OK, 0 rows affected (0.52 sec)
การเพิ่มข้อมูล
mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable values('Adam');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.09 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
ผลลัพธ์:
+-----------+ | FirstName | +-----------+ | John | | Adam | | David | | Mike | | Sam | +-----------+ 5 rows in set (0.00 sec)
คิวรี่ค้นหาขึ้นต้นด้วย D หรือ S
mysql> select * from DemoTable where FirstName LIKE 'D%' or FirstName LIKE 'S%';
ผลลัพธ์
+-----------+ | FirstName | +-----------+ | David | | Sam | +-----------+ 2 rows in set (0.00 sec)
คำอธิบาย Pattern
| Pattern | ความหมาย | ตัวอย่าง Match |
|---|---|---|
LIKE 'D%' | ขึ้นต้นด้วย D | David, Dan, Doe |
LIKE '%D' | ลงท้ายด้วย D | David, Road, Seed |
LIKE '%D%' | มี D อยู่ตรงไหนก็ได้ | David, Adam, Middle |
LIKE 'D\_%' | ขึ้นต้น D ตามด้วย 1 ตัวอักษร แล้วอะไรก็ได้ | Da, Do, D1 |
ประสิทธิภาพ: ใช้ Index ได้
LIKE 'prefix%' ใช้ Index ได้ (Range Scan)
LIKE '%suffix' หรือ LIKE '%middle%' ใช้ Index ไม่ได้ (Full Table Scan)
REGEXP ทางเลือก
WHERE FirstName REGEXP '^(D|S)' -- ขึ้นต้น D หรือ S