شرح صفوف ومحتوى الفقرة
كما أن عملية الضرب تسبق الجمع في الحساب، تتبع المعاملات المنطقية في SQL تسلسلاً صارماً للأولوية: يُنفَّذ NOT أولاً، يليه AND، وأخيراً OR.
- التجميع الضمني التلقائي: يفسّر محرك MySQL العبارة
cond_a OR cond_b AND cond_cتلقائياً على أنهاcond_a OR (cond_b AND cond_c). - خطر تسرب السجلات: نسيان أولوية
ANDقبلORيؤدي غالباً إلى إرجاع صفوف غير مقصودة بمجرد تحقق طرفORالأول دون تطبيق شرطANDعليها.
لذلك يجب دائماً مراجعة ترتيب تقييم الشروط المركّبة بدقة قبل اعتمادها في التقارير المالية أو الأمنية.
SQL
-- Watch how AND binds tighter than OR without parentheses
SELECT product_id, category, price, is_published
FROM products
WHERE category = 'Books'
OR category = 'Courses' AND is_published = 1;