บทความนี้จะแนะนำวิธีการค้นหาข้อมูลในหลายคอลัมน์พร้อมกันใน 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 เกิดขึ้น