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

วิธีค้นหาชื่อที่ขึ้นต้นด้วยตัวอักษร A ใน MySQL

การใช้ 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