1. ภาพรวมของ MySQL LIKE
ตัวดำเนินการ LIKE ของ MySQL ใช้เพื่อค้นหาข้อมูลที่ตรงกับรูปแบบเฉพาะในฐานข้อมูล LIKE ถูกใช้ในคลอส WHERE ของ SQL และให้คุณกำหนดเงื่อนไขการค้นหาตามส่วนหนึ่งหรือทั้งหมดของสตริง ตัวอย่างเช่น มันมีประโยชน์เมื่อค้นหา “ชื่อที่เริ่มต้นด้วยอักษรบางตัว” หรือ “รหัสสินค้า ที่มีอักขระเฉพาะ”
กรณีการใช้งานทั่วไปของตัวดำเนินการ LIKE
- การค้นหาแบบตรงบางส่วน
- การค้นหารูปแบบเฉพาะ
- การกรองข้อมูล
เนื่องจากตัวดำเนินการนี้ออกแบบมาสำหรับการจับคู่รูปแบบโดยเฉพาะ จึงเป็นสิ่งสำคัญสำหรับการค้นหาและทำงานกับข้อมูลในฐานข้อมูลอย่างมีประสิทธิภาพ
2. ไวยากรณ์พื้นฐานของ MySQL LIKE
ไวยากรณ์พื้นฐานสำหรับการใช้ตัวดำเนินการ LIKE ใน MySQL มีดังนี้
SELECT column_name FROM table_name WHERE column_name LIKE 'pattern';
ตัวอย่างการใช้ LIKE
- ค้นหาข้อมูลที่เริ่มต้นด้วยอักขระเฉพาะ
SELECT * FROM users WHERE name LIKE 'A%'; - ค้นหาข้อมูลที่มีสตริงเฉพาะ
SELECT * FROM products WHERE product_code LIKE '%123%';
ตัวดำเนินการ LIKE ใช้ร่วมกับไวลด์การ์ดเช่น % และ _ ซึ่งทำให้การค้นหามีความยืดหยุ่นมากขึ้น
3. ไวลด์การ์ดที่ใช้กับ LIKE
เมื่อใช้ตัวดำเนินการ LIKE คุณจะใช้ไวลด์การ์ดเพื่อกำหนดรูปแบบการค้นหา MySQL รองรับไวลด์การ์ดหลักสองแบบต่อไปนี้
ไวลด์การ์ด %
- ตรงกับสตริงใดก็ได้ (ศูนย์หรือหลายอักขระ)
SELECT * FROM users WHERE email LIKE '%@example.com';ในตัวอย่างนี้จะค้นหาที่อยู่อีเมลทั้งหมดที่ลงท้ายด้วย@example.com
ไวลด์การ์ด _
- ตรงกับอักขระเดียว
SELECT * FROM products WHERE product_code LIKE '_A%';ในตัวอย่างนี้จะค้นหารหัสสินค้าทั้งหมดที่อักขระที่สองเป็นA
โดยการใช้ไวลด์การ์ดอย่างถูกต้อง คุณสามารถกรองข้อมูลในฐานข้อมูลได้อย่างมีประสิทธิภาพ
4. เทคนิคการจับคู่รูปแบบ
โดยการผสานตัวดำเนินการ LIKE กับไวลด์การ์ด คุณสามารถทำการค้นหาตามรูปแบบต่าง ๆ ได้หลายแบบ
เริ่มต้นด้วย
- ค้นหาข้อมูลที่สตริงเริ่มต้นด้วยรูปแบบเฉพาะ
SELECT * FROM customers WHERE name LIKE 'John%';คำสั่งนี้จะค้นหาชื่อลูกค้าทั้งหมดที่เริ่มต้นด้วยJohn
สิ้นสุดด้วย
- ค้นหาข้อมูลที่สตริงสิ้นสุดด้วยรูปแบบเฉพาะ
SELECT * FROM files WHERE filename LIKE '%.pdf';คำสั่งนี้จะค้นหาชื่อไฟล์ทั้งหมดที่ลงท้ายด้วย.pdf
มีอยู่ใน (Contains)
- ค้นหาข้อมูลที่สตริงมีรูปแบบเฉพาะ
SELECT * FROM documents WHERE content LIKE '%MySQL%';คำสั่งนี้จะค้นหาเอกสารทั้งหมดที่มีสตริงMySQL
5. การหลีกเลี่ยงอักขระพิเศษใน LIKE
ในตัวดำเนินการ LIKE ไวลด์การ์ด % และ _ มีความหมายพิเศษ หากคุณต้องการค้นหาอักขระเหล่านี้เป็นอักขระปกติ ต้องใช้อักขระหลีกเลี่ยง
วิธีการหลีกเลี่ยง
- ตัวอย่างการค้นหาโดยใช้อักขระหลีกเลี่ยง
SELECT * FROM filenames WHERE filename LIKE 'file\_%' ESCAPE '\';ในคิวรีนี้จะค้นหาชื่อไฟล์ทั้งหมดที่เริ่มต้นด้วยfile_ตัวอักขระ_ปกติจะถือเป็นไวลด์การ์ด แต่โดยใช้อักขระหลีกเลี่ยง\จะทำให้ถือเป็นอักขระปกติ
6. การใช้งานขั้นสูงของ LIKE
ตัวดำเนินการ LIKE สามารถผสานกับคำสั่ง SQL อื่น ๆ เพื่อทำการค้นหาขั้นสูงได้
ผสานกับ JOIN
- ค้นหาข้อมูลที่เกี่ยวข้องข้ามตาราง
SELECT orders.id, customers.name FROM orders JOIN customers ON orders.customer_id = customers.id WHERE customers.name LIKE '%Smith%';คำสั่งนี้ดึงรายการสั่งซื้อของลูกค้าที่ชื่อมีคำว่าSmith
ปฏิเสธด้วย NOT LIKE
- ค้นหาข้อมูลที่ไม่ตรงกับรูปแบบเฉพาะ
SELECT * FROM emails WHERE address NOT LIKE '%@spam.com';คำสั่งนี้ดึงที่อยู่อีเมลที่ไม่ลงท้ายด้วย@spam.com

7. แนวทางปฏิบัติที่ดีที่สุดเมื่อใช้ LIKE
มีข้อควรพิจารณาและแนวทางปฏิบัติที่สำคัญบางประการเมื่อใช้ตัวดำเนินการ LIKE
- เมื่อใช้ตัวดำเนินการ
LIKEประสิทธิภาพอาจลดลงเมื่อค้นหาชุดข้อมูลขนาดใหญ่ โดยเฉพาะอย่างยิ่งหากคุณวาง%ไว้ที่จุดเริ่มต้นของรูปแบบ ดัชนีจะไม่สามารถใช้ได้อย่างมีประสิทธิภาพ ซึ่งอาจทำให้การสืบค้นช้าลง
การใช้ดัชนีที่เหมาะสม
- เพื่อปรับปรุงประสิทธิภาพ ควรพิจารณาสร้างดัชนีเมื่อจำเป็น
8. กรณีการใช้งานทั่วไปของ MySQL LIKE
ตัวดำเนินการ LIKE ของ MySQL ถูกใช้ในหลายสถานการณ์ต่าง ๆ เช่นต่อไปนี้.
การค้นหาลูกค้า
- เมื่อทำการค้นหาตามชื่อของลูกค้าหรือที่อยู่อีเมล.
การค้นหารหัสสินค้า
- เมื่อค้นหาสินค้าตามส่วนหนึ่งของรหัสสินค้า.
9. สรุป
ตัวดำเนินการ LIKE เป็นเครื่องมือการจับคู่รูปแบบที่ทรงพลังใน MySQL ในบทความนี้ เราได้ครอบคลุมทุกอย่างตั้งแต่ไวยากรณ์พื้นฐานจนถึงการใช้งานขั้นสูงและการปรับประสิทธิภาพการทำงาน ใช้ตัวดำเนินการ LIKE อย่างเหมาะสมเพื่อค้นหาและทำงานกับฐานข้อมูลของคุณอย่างมีประสิทธิภาพ.
10. คำถามที่พบบ่อย
Q1: ความแตกต่างระหว่าง LIKE กับ = คืออะไร?
A1: = ใช้สำหรับการค้นหาแบบตรงกันทั้งหมด ในขณะที่ LIKE ใช้สำหรับการจับคู่บางส่วนและการจับคู่รูปแบบ.
Q2: LIKE มีความไวต่อขนาดตัวอักษรหรือไม่?
A2: ในการตั้งค่าเริ่มต้นของ MySQL, LIKE ไม่ไวต่อขนาดตัวอักษร อย่างไรก็ตาม คุณสามารถทำให้มันไวต่อขนาดตัวอักษรได้โดยใช้คีย์เวิร์ด BINARY.
Q3: สามารถใช้ตัวดำเนินการ LIKE กับตัวเลขได้หรือไม่?
A3: โดยทั่วไปใช้กับสตริง แต่สามารถใช้ได้หากตัวเลขถูกเก็บเป็นสตริง.


