شبكة تعلم مع ناو

ما الفرق بين LIMIT 2, 5 وLIMIT 5 OFFSET 2؟

يدعم MySQL صيغتين شائعتين لتحديد عدد النتائج مع تجاوز صفوف في البداية. في الصيغة LIMIT 2, 5، يمثل العدد الأول الإزاحة، ويمثل الثاني الحد الأعلى لعدد الصفوف المعروضة. أما في LIMIT 5 OFFSET 2، فيأتي عدد الصفوف أولًا وتأتي الإزاحة بعد الكلمة OFFSET. الصيغتان تعبران عن الطلب نفسه.

الخلط بين ترتيب العددين قد يجعل الاستعلام يعمل دون خطأ نحوي لكنه يعرض جزءًا مختلفًا من البيانات. لذلك من المفيد قراءة الصيغة ذات الفاصلة باعتبارها: تجاوز أولًا، ثم اعرض. ويمكن تفضيل الصيغة التي تستخدم OFFSET عندما تساعد الكلمات الصريحة على فهم المقصود. لا يتغير معنى الترتيب أو البيانات بين الصيغتين ما دام العددان قد وُضعا في موضعيهما الصحيحين.

مثال

CREATE TABLE events_limit_forms_demo (id INT);
INSERT INTO events_limit_forms_demo VALUES (1), (2), (3), (4), (5), (6);
SELECT id FROM events_limit_forms_demo ORDER BY id LIMIT 2, 3;
SELECT id FROM events_limit_forms_demo ORDER BY id LIMIT 3 OFFSET 2;

باختصار: LIMIT offset, count تكافئ LIMIT count OFFSET offset، مع تبديل موضع العددين.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.