การใช้ LIKE สำหรับค้นหาข้อความขึ้นต้นด้วยรูปแบบ
ออปอเรเตอร์ LIKE ร่วมกับตัวแทน (Wildcard) % ใช้ค้นหาสตริงที่ขึ้นต้นด้วยตัวอักษรหรือรูปแบบที่กำหนดได้ง่าย
ไวยากรณ์
SELECT * FROM your_table_name WHERE your_column_name LIKE 'A%';
ตัวอย่างสร้างตารางและข้อมูล
CREATE TABLE DemoTable (
StudentName VARCHAR(100)
);
INSERT INTO DemoTable VALUES
('John Smith'), ('Adam Smith'), ('Aaron Taylor'), ('Chris Brown');
ข้อมูลในตาราง
+--------------+ | StudentName | +--------------+ | John Smith | | Adam Smith | | Aaron Taylor | | Chris Brown | +--------------+
คำสั่งค้นหาชื่อขึ้นต้นด้วย A
SELECT * FROM DemoTable WHERE StudentName LIKE 'A%';
ผลลัพธ์
+--------------+ | StudentName | +--------------+ | Adam Smith | | Aaron Taylor | +--------------+
คำอธิบาย:
'A%':Aตรงตัวอักษร A แรก,%ตรงกับตัวอักษรใดๆ จำนวน 0 หรือมาก (Wildcard)- ค้นหาแบบ Case-Insensitive โดยค่าเริ่มต้น (Collation _ci)
Wildcard อื่นๆ:
%ตรงกับตัวอักษรใดๆ จำนวน 0 หรือมาก_(Underscore) ตรงกับตัวอักษรใดๆ เพียง 1 ตัวLIKE 'A_%'= เริ่มต้น A และมีตัวอักษรอย่างน้อย 1 ตัวต่อหลัง
⚠ ประสิทธิภาพ: LIKE 'A%' (ขึ้นต้นคงที่) สามารถใช้ Index ได้ (Range Scan) แต่ LIKE '%A%' (ขึ้นต้น Wildcard) ไม่สามารถใช้ Index ได้ → Full Table Scan
ค้นหาแบบ Case-Sensitive: ใช้ COLLATE utf8mb4_bin หรือ BINARY เช่น WHERE StudentName LIKE 'A%' COLLATE utf8mb4_bin