شرح صفوف ومحتوى الفقرة
عند ترتيب عمود يقبل القيم الفارغة في 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;