شرح صفوف ومحتوى الفقرة
يختبر المعامل IN ما إذا كانت قيمة العمود تطابق أي عنصر داخل قائمة من القيم المفصولة بفواصل.
- اختصار الشيفرة ومنع الأخطاء: كتابة
WHERE status IN ('paid', 'shipped', 'delivered')أنظف وأقل عرضة للخطأ من تكرار جملORالمتتالية. - تحسين البحث الثنائي: عندما تكون عناصر القائمة قيماً ثابتة، يرتّبها محرك MySQL في الذاكرة وينفذ بحثاً ثنائياً سريعاً بدلاً من الفحص الخطي التقليدي.
احرص على توافق نوع بيانات القيم المكتوبة داخل القائمة مع نوع العمود ليستفيد محرك InnoDB من الفهارس بكفاءة.
التصفية ضمن القوائم والنطاقات الشاملة عبر IN و BETWEEN
يرتّب محرك MySQL قوائم IN الثابتة للبحث الثنائي السريع، ويشمل BETWEEN الحدين الأدنى والأعلى
SQL
-- Match orders in any of three active fulfillment states
SELECT order_id, customer_id, order_status, total_usd
FROM orders
WHERE order_status IN ('paid', 'packing', 'shipped');