"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استرداد نتائج استعلام SQL بترتيب محدد مسبقًا دون استخدام ORDER BY؟

كيفية استرداد نتائج استعلام SQL بترتيب محدد مسبقًا دون استخدام ORDER BY؟

تم النشر بتاريخ 2024-11-20
تصفح:865

How to Retrieve SQL Query Results in a Predefined Order Without Using ORDER BY?

إرجاع نتائج الاستعلام بترتيب محدد مسبقًا

في SQL، عادةً ما يكون من الصعب استرداد نتائج الاستعلام بترتيب معين ما لم يتم تحديد ذلك باستخدام ORDER بواسطة جملة. ومع ذلك، في بعض السيناريوهات، قد لا تكون جملة ORDER BY قابلة للتطبيق، كما هو الحال عند محاولة استرداد البيانات بترتيب محدد مسبقًا يعتمد فقط على قيم حقل معين.

طرحت مناقشة حديثة سيناريو حيث كان المطلوب تحديد المعرفات (7، 2، 5، 9، و8) واسترجاعها بهذا الترتيب الدقيق دون الاعتماد على أي معايير إضافية. تقوم الاستعلامات التالية بإرجاع النتائج بترتيب غير متوقع:

حدد المعرف من الجدول حيث المعرف (7،2،5،9،8)؛
SELECT id FROM table WHERE id in (7,2,5,9,8);
حدد المعرف من الجدول حيث المعرف في (8,2,5,9,7);
SELECT id FROM table WHERE id in (8,2,5,9,7);
تم اكتشاف حل جديد من خلال إدخال مدونة يعالج هذه المشكلة بشكل أنيق:

اختر المعرف من الجدول حيث المعرف في (7,2 ,5,9,8) ORDER BY FIND_IN_SET(id,"7,2,5,9,8");
SELECT id FROM table WHERE id in (8,2,5,9,7);
يتم استخدام الدالة FIND_IN_SET لإرجاع موضع قيمة محددة ضمن مجموعة معينة. على سبيل المثال، المعرف 7 له الموضع 1، والمعرف 2 له الموضع 2، وهكذا.

عند تطبيق عبارة ORDER BY مع FIND_IN_SET، تفهم عبارة ORDER BY المواضع وترتيب النتائج بشكل فعال على أساس القيم المحددة. يستخدم هذا الحل آلية داخلية في MySQL لتحقيق الترتيب المحدد مسبقًا المطلوب.

من الجدير بالذكر أن هذه التقنية يمكن أن تكون بديلاً قيمًا عندما لا يمكن استخدام جملة ORDER BY لتحديد الترتيب المطلوب.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3