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

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


เราได้เห็นคำสั่ง MySQL SELECT เพื่อดึงข้อมูลจากตาราง MySQL นอกจากนี้เรายังสามารถใช้ประโยคเงื่อนไขที่เรียกว่าคำสั่ง WHERE เพื่อเลือกระเบียนที่ต้องการได้

ส่วนคำสั่ง WHERE ที่มีเครื่องหมาย 'เท่ากับ' (=) ทำงานได้ดีในที่ที่เราต้องการจับคู่แบบตรงทั้งหมด เช่นถ้า "tutorial_author ='Sanjay'" แต่อาจมีข้อกำหนดที่เราต้องการกรองผลลัพธ์ทั้งหมดที่ชื่อ tutorial_author ควรมี "jay" สิ่งนี้สามารถจัดการได้โดยใช้ตัวดำเนินการ MySQL LIKE พร้อมกับส่วนคำสั่ง WHERE

หากใช้ตัวดำเนินการ MySQL LIKE โดยไม่มีอักขระตัวแทน ตัวดำเนินการ LIKE จะเหมือนกับเครื่องหมายเท่ากับพร้อมกับส่วนคำสั่ง WHERE

ตัวอย่าง

mysql> Select * from Student Where Name LIKE '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 = 'Harshit';
+------+---------+---------+----------+--------------------+
| Id   | Name    | Address | Subject  | year_of_admission  |
+------+---------+---------+----------+--------------------+
| 15   | Harshit | Delhi   | Commerce |      2009          |
+------+---------+---------+----------+--------------------+
1 row in set (0.00 sec)

นอกเหนือจากความแตกต่างของการมีอักขระตัวแทน % และ _ แล้ว มีความแตกต่างที่สำคัญระหว่างตัวดำเนินการ LIKE และ =คือตัวดำเนินการ 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)