ความแตกต่างระหว่าง LIKE และ =
คำสั่ง SELECT พร้อม WHERE clause ใช้สำหรับเลือกเรคอร์ดที่ต้องการ
การทำงานพื้นฐาน
- = (เท่ากับ) - ใช้สำหรับการจับคู่ที่แน่นอน (exact match) เช่น
tutorial_author = 'Sanjay' - LIKE - ใช้เมื่อต้องการกรองผลลัพธ์ที่มีรูปแบบบางส่วน เช่น ชื่อที่มี "jay" อยู่ภายใน
หากใช้ LIKE โดยไม่มี wildcard** ฟังก์ชันจะทำงานเหมือน = ทุกประการ
ตัวอย่างที่ให้ผลลัพธ์เหมือนกัน:
mysql> Select * from Student Where Name LIKE 'Harshit'; mysql> Select * from Student Where Name = 'Harshit'; -- ทั้งคู่คืนแถวเดียวกัน: Id=15, Name=Harshit
ความแตกต่างสำคัญ: การจัดการช่องว่างต่อท้าย (Trailing Spaces)
LIKE ไม่ละเลยช่องว่างต่อท้าย** ส่วน **= จะละเลยช่องว่างต่อท้าย**
ตัวอย่างแสดงความแตกต่าง:
mysql> Select * from Student Where Name = 'Harshit '; +------+---------+---------+----------+--------------------+ | Id | Name | Address | Subject | year_of_admission | +------+---------+---------+----------+--------------------+ | 15 | Harshit | Delhi | Commerce | 2009 | +------+---------+---------+----------+--------------------+ 1 row in set (0.00 sec) mysql> Select * from Student Where Name LIKE 'Harshit '; Empty set (0.00 sec)
คำสั่ง = หาเจอแม้มีช่องว่างต่อท้าย แต่ LIKE หาไม่เจอ เพราะ LIKE ตรวจสอบทุกตัวอักษรรวมถึงช่องว่าง