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

วิธีค้นหาข้อมูลในหลายคอลัมน์ด้วย MySQL

บทความนี้จะแนะนำวิธีการค้นหาข้อมูลในหลายคอลัมน์พร้อมกันใน MySQL โดยใช้ตัวดำเนินการ AND และ OR ตามความต้องการ

สมมติฐาน: เรามีฐานข้อมูลชื่อ DBNAME และตารางชื่อ tableName อยู่แล้ว

ตัวอย่างการใช้งาน

ใช้ตัวดำเนินการ AND

SELECT colName FROM tableName 
WHERE my_col LIKE '%$param1%' AND another_col LIKE '%$param2%';

เมื่อใช้ AND ทั้งสองเงื่อนไขต้องตรงกัน (Match) ถึงจะคืนผลลัพธ์กลับมา

ใช้ตัวดำเนินการ OR

SELECT colName FROM tableName 
WHERE my_col LIKE '%$param1%' OR another_col LIKE '%$param2%';

เมื่อใช้ OR เพียงแค่เงื่อนไขใดเงื่อนไขหนึ่งตรงกันก็จะคืนผลลัพธ์กลับมา

คำแนะนำเพิ่มเติม

  • ใช้เครื่องหมาย % เป็นไวลด์การ์ด (Wildcard) เพื่อค้นหาข้อมูลที่มีคำหรือตัวอักษรบางส่วน
  • สำหรับประสิทธิภาพที่ดีกว่า ควรพิจารณาสร้างดัชนี (Index) บนคอลัมน์ที่ใช้ในเงื่อนไข WHERE บ่อยๆ
  • หลีกเลี่ยงการใช้ LIKE '%...%' นำหน้าด้วย % เพราะจะทำให้ Full Table Scan เกิดขึ้น