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

การค้นหาข้อมูลด้วยสองคีย์ (Two Keys) ใน MySQL

การค้นหาข้อมูลด้วยสองคีย์ (Two Keys) ใน MySQL สามารถทำได้โดยใช้ OR ร่วมกับคีย์เดี่ยวที่เพิ่มประสิทธิภาพแล้ว หรือใช้ AND ที่เพิ่มประสิทธิภาพแล้ว

วิธีที่ 1: ใช้ OR แบบปกติ

SELECT field1_index, field2_index 
FROM tableName 
WHERE field1_index = '1' OR field2_index = '1';

วิธีที่ 2: ใช้ UNION (แนะนำสำหรับประสิทธิภาพ)

วิธีนี้มีประสิทธิภาพมากกว่า เพราะแต่ละคำสั่ง SELECT ค้นหาเพียงคีย์เดียว ทำให้เพิ่มประสิทธิภาพได้ดีกว่า

SELECT field1_index, field2_index FROM tableName WHERE field1_index = '1'
UNION
SELECT field1_index, field2_index FROM tableName WHERE field2_index = '1';

ข้อดีของ UNION

  • แต่ละ SELECT ใช้ดัชนีได้อย่างมีประสิทธิภาพ
  • หลีกเลี่ยงปัญหาที่ Optimizer อาจไม่ใช้ดัชนีเมื่อใช้ OR ระหว่างคอลัมน์ต่างกัน
  • ผลลัพธ์ไม่ซ้ำกันโดยอัตโนมัติ (UNION ลบแถวซ้ำ)

หมายเหตุ: หากต้องการรวมผลลัพธ์ที่ซ้ำกันด้วย ให้ใช้ UNION ALL แทน