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

ความแตกต่างสำคัญระหว่าง MySQL LIKE และตัวดำเนินการเท่ากับ (=)

ความแตกต่างระหว่าง 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 ตรวจสอบทุกตัวอักษรรวมถึงช่องว่าง