جملة LIMIT في SQL

تُستخدم جملة LIMIT في SQL لتحديد عدد الصفوف التي يُرجعها الاستعلام. وهي ضرورية عند التعامل مع جداول ضخمة لا نريد جلب كل صفوفها، أو لعرض أفضل عدد محدد من النتائج، أو لبناء أنظمة ترقيم الصفحات (Pagination). تختلف صيغتها قليلاً بين الأنظمة؛ فتستخدم MySQL وPostgreSQL كلمة LIMIT، بينما يستخدم SQL Server صيغة TOP.

الاستخدام الأساسي

لإرجاع أول خمسة صفوف فقط من الجدول نكتب:

SELECT * FROM products
LIMIT 5;

LIMIT مع ORDER BY

تظهر فائدة LIMIT الحقيقية عند دمجها مع ORDER BY، إذ نرتّب النتائج أولاً ثم نأخذ الأعلى منها. المثال التالي يعرض أغلى ثلاثة منتجات:

SELECT * FROM products
ORDER BY price DESC
LIMIT 3;

بدون ORDER BY يكون اختيار الصفوف غير مضمون الترتيب، لذا يُنصح دائماً بدمج LIMIT مع ترتيب واضح.

الإزاحة OFFSET وترقيم الصفحات

تتيح OFFSET تخطّي عدد معيّن من الصفوف قبل البدء بالإرجاع، وهي أساس ترقيم الصفحات. لعرض الصفحة الثانية بحجم عشرة صفوف نتخطّى أول عشرة:

SELECT * FROM products
ORDER BY id
LIMIT 10 OFFSET 10;

هنا نتخطّى أول 10 صفوف ونُرجع الـ10 التالية، أي الصفحة الثانية.

أخطاء شائعة

  • استخدام LIMIT دون ORDER BY وتوقّع ترتيب ثابت للنتائج.
  • الخلط بين صيغة LIMIT في MySQL وصيغة TOP في SQL Server.
  • استخدام OFFSET بقيم كبيرة جداً على جداول ضخمة، ما يبطئ الأداء بشكل ملحوظ.

تمرين محلول

المطلوب: اعرض أحدث خمسة طلبات حسب تاريخ الإنشاء.

SELECT * FROM orders
ORDER BY created_at DESC
LIMIT 5;

رتّبنا الطلبات تنازلياً حسب التاريخ ليأتي الأحدث أولاً، ثم حدّدنا أول خمسة بـ LIMIT.

الخلاصة

جملة LIMIT تتحكم في عدد الصفوف المُرجعة، وعند دمجها مع ORDER BY وOFFSET تصبح أداة قوية لعرض أفضل النتائج وبناء ترقيم الصفحات. وتذكّر دائماً اقترانها بترتيب واضح لضمان نتائج متوقعة.