انتقل إلى محتوى الدرس

How ORDER BY Positions NULLs موقع القيم الفارغة بالترتيب

تعرّف على موقع ظهور القيم الفارغة NULL في الترتيب التصاعدي والتنازلي وكيفية دفعها لنهاية النتائج.
1 صفوف تعليمية
MySQL
7 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

عند ترتيب عمود يقبل القيم الفارغة في MySQL، يعامل المحرك القيمة NULL على أنها أصغر من أي قيمة غير فارغة أخرى عند الفرز.

  • مع الترتيب التصاعدي ASC: تظهر الصفوف التي تحتوي على NULL في بداية النتائج أولاً.
  • مع الترتيب التنازلي DESC: تظهر الصفوف التي تحتوي على NULL في نهاية النتائج أخيراً.
  • دفع قيم NULL للنهاية مع الترتيب التصاعدي: نظراً لعدم وجود كلمة NULLS LAST في MySQL، نستخدم الحيلة المنطقية الأنيقة ORDER BY (col IS NULL) ASC, col ASC؛ حيث يُعيد التعبير col IS NULL القيمة 0 للصفوف المكتملة فتظهر أولاً، ويُعيد 1 للصفوف الفارغة فتُدفع إلى آخر القائمة!

تعمل هذه الطريقة القياسية بكفاءة مع الأرقام والنصوص والتواريخ على حد سواء.

SQL
-- Push NULL delivery dates to the bottom while sorting ASC
SELECT task_id, title, due_date
FROM project_tasks
ORDER BY (due_date IS NULL) ASC,
         due_date ASC,
         task_id ASC;