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

كيف أحسم تساوي القيم عند استخدام ORDER BY وLIMIT؟

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

تزداد أهمية ذلك عند استخدام LIMIT، لأن قطع النتيجة بعد عدد محدد قد يقع بين صفوف متساوية في التقييم. إضافة معرف فريد كمعيار أخير تجعل ترتيب هذه الصفوف محددًا. لتوقع النتيجة، رتب المجموعات بحسب القيمة الأساسية أولًا، ثم رتب الصفوف داخل كل تعادل بحسب المعيار التالي، وبعد اكتمال الترتيب اختر عدد الصفوف المطلوب. لا تختَر الصفوف باستخدام LIMIT قبل إنهاء المقارنات.

مثال

CREATE TABLE movies_order_example (id INT PRIMARY KEY, rating INT);
INSERT INTO movies_order_example VALUES (4, 8), (2, 9), (1, 9), (3, 8);
SELECT id FROM movies_order_example ORDER BY rating DESC, id ASC LIMIT 3;

باختصار: أضف معيارًا فريدًا لحسم التعادل، ثم طبّق LIMIT على الترتيب الناتج.

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

اختبر نفسك

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