اطلب حسب MySQL: استعلام DESC & ASC مع مثال

نتائج الفرز

باستخدام الأمر SELECT، تم إرجاع النتائج بنفس ترتيب إضافة السجلات إلى قاعدة البيانات. هذا هو ترتيب الفرز الافتراضي. في هذا القسم، سننظر في كيفية فرز نتائج الاستعلام لدينا. الفرز هو ببساطة إعادة ترتيب نتائج الاستعلام بطريقة محددة. يمكن إجراء الفرز على عمود واحد أو على أكثر من عمود. يمكن القيام بذلك على الأرقام والسلاسل وكذلك أنواع بيانات التاريخ.

ما هو الطلب حسب في MySQL?

MySQL ترتيب حسب يتم استخدامه مع استعلام SELECT لفرز البيانات بطريقة منظمة. ال MySQL يتم استخدام جملة ORDER BY لفرز مجموعات نتائج الاستعلام بترتيب تصاعدي أو تنازلي.

SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];

هنا

  • "اختيار البيان... " هو استعلام التحديد العادي
  • " | " يمثل البدائل
  • “[أين الشرط | المجموعة حسب `اسم_الحقل (أسماء_الحقل)` وجود شرط" هو الشرط الاختياري المستخدم لتصفية مجموعات نتائج الاستعلام.
  • "ترتيب حسب" ينفذ فرز مجموعة نتائج الاستعلام
  • “[ASC | DESC]" هي الكلمة الأساسية المستخدمة لفرز مجموعات النتائج بترتيب تصاعدي أو تنازلي. ملحوظة ASC يتم استخدامه كإعداد افتراضي.
  • ما هي الكلمات الرئيسية DESC وASC؟

    الكلمات الرئيسية DESC وASCASC هو الشكل القصير للصاعد الكلمات الرئيسية DESC وASCMySQL DESC هو الشكل القصير للتنازلي
    يتم استخدامه لفرز نتائج الاستعلام بأسلوب من أعلى إلى أسفل. يتم استخدامه لفرز نتائج الاستعلام بأسلوب من الأسفل إلى الأعلى
    عند العمل على أنواع بيانات التاريخ، يظهر التاريخ الأقدم أعلى القائمة. . عند العمل على أنواع التاريخ، يظهر التاريخ الأخير أعلى القائمة.
    عند التعامل مع أنواع البيانات الرقمية، تظهر القيم الأدنى في أعلى القائمة. عند العمل باستخدام أنواع البيانات الرقمية، تظهر أعلى القيم أعلى مجموعة نتائج الاستعلام.
    عند العمل مع أنواع بيانات السلسلة، يتم فرز مجموعة نتائج الاستعلام من تلك التي تبدأ بالحرف A وصولاً إلى الحرف Z. عند العمل مع أنواع بيانات السلسلة، يتم فرز مجموعة نتائج الاستعلام من تلك التي تبدأ بالحرف Z نزولاً إلى الحرف A.

    يتم استخدام كل من الكلمات الأساسية SQL DESC وASC معًا بالتزامن مع عبارة SELECT و MySQL ORDER BY جملة.


    بناء جملة DESC وASC

    تحتوي كلمة الترتيب SQL DESC على بناء الجملة الأساسي التالي.

    SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]

    هنا

    • حدد {اسم الحقل (الأسماء) | *} من اسم (أسماء) الجدول هو البيان الذي يحتوي على الحقول والجدول (الجداول) التي يمكن الحصول على مجموعة النتائج منها.
    • [أين الشرط] يعد اختياريًا ولكن يمكن استخدامه لتصفية البيانات وفقًا للحالة المحددة.
    • ترتيب حسب اسم (أسماء) الحقل إلزامي وهو الحقل الذي سيتم إجراء الفرز عليه. ال MySQL تحدد الكلمة الأساسية DESC أن الفرز يجب أن يكون بترتيب تنازلي.
    • [حد] يعد اختياريًا ولكن يمكن استخدامه لتحديد عدد النتائج التي يتم إرجاعها من مجموعة نتائج الاستعلام.

    أمثلة:

    دعونا الآن نلقي نظرة على مثال عملي -

    SELECT * FROM members;

    تنفيذ البرنامج النصي أعلاه في MySQL يعطينا العمل مع myflixdb النتائج التالية الموضحة أدناه.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553


لنفترض أن قسم التسويق يريد ترتيب تفاصيل الأعضاء بترتيب تنازلي حسب تاريخ الميلاد. سيساعدهم هذا في إرسال تحيات عيد الميلاد في الوقت المناسب. يمكننا الحصول على القائمة المذكورة من خلال تنفيذ استعلام مثل أدناه -

SELECT * FROM members ORDER BY date_of_birth DESC;

تنفيذ البرنامج النصي أعلاه في MySQL يعطينا العمل مع myflixdb النتائج التالية الموضحة أدناه.

مثال DESC وASC

نفس الاستعلام بترتيب تصاعدي

اختر * من الأعضاء ORDER BY date_of_birth ASC

مثال DESC وASC

ملاحظة: القيم NULL تعني عدم وجود قيم (ليست صفرًا أو سلسلة فارغة). لاحظ الطريقة التي تم بها فرزهم.

مزيد من الأمثلة

دعونا نفكر في البرنامج النصي التالي لفرز SQL الذي يسرد جميع سجلات الأعضاء.

SELECT * FROM `members`;

يؤدي تنفيذ البرنامج النصي أعلاه إلى الحصول على النتائج التالية الموضحة أدناه.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL


لنفترض أننا نريد الحصول على قائمة تقوم بفرز مجموعة نتائج الاستعلام باستخدام حقل الجنس، فسنستخدم البرنامج النصي الموضح أدناه.

SELECT * FROM `members` ORDER BY `gender`;
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

تم عرض الأعضاء "الإناث" أولاً متبوعة بالأعضاء "الذكور"، وذلك لأنه عند استخدام عبارة ORDER BY DESC دون تحديد ASC أو MySQL الكلمة الأساسية DESC، بشكل افتراضي، MySQL قام بفرز مجموعة نتائج الاستعلام بترتيب تصاعدي.

دعونا الآن نلقي نظرة على مثال يفعل ذلك الفرز باستخدام عمودين; اول واحد هو فرز in ترتيب تصاعدي بشكل افتراضي بينما يكون العمود الثاني فرز in تنازليا.

SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;

تنفيذ البرنامج النصي أعلاه في MySQL يعطي workbench مقابل myflixdb النتائج التالية.

مثال DESC وASC

تم فرز عمود الجنس بترتيب تصاعدي بشكل افتراضي بينما تم فرز عمود تاريخ الميلاد بترتيب تنازلي بشكل صريح

لماذا قد نستخدم DESC وASC؟

لنفترض أننا نريد طباعة سجل المدفوعات لأحد أعضاء مكتبة الفيديو للمساعدة في الإجابة على الاستفسارات من مكتب الاستقبال، ألن يكون من المنطقي أكثر أن تتم طباعة الدفعات بترتيب زمني تنازلي بدءًا من الدفعة الأخيرة إلى الدفعة السابقة؟

DESC في SQL هي كلمة أساسية تصبح مفيدة في مثل هذه المواقف. يمكننا كتابة استعلام يقوم بفرز القائمة بترتيب تنازلي باستخدام تاريخ الدفع.

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

تكون الكلمة الأساسية ASC مفيدة في مثل هذه المواقف؛ يمكننا الحصول على قائمة الأفلام مرتبة حسب اسم الفئة وعنوان الفيلم بترتيب تصاعدي.

الملخص

  • فرز نتائج الاستعلام هو إعادة ترتيب الصفوف التي يتم إرجاعها من مجموعة نتائج الاستعلام إما بترتيب تصاعدي أو تنازلي.
  • يتم استخدام الكلمة الأساسية DESC في SQL لفرز مجموعة نتائج الاستعلام بترتيب تنازلي.
  • يتم استخدام الكلمة الأساسية ASC لفرز مجموعة نتائج الاستعلام بترتيب تصاعدي.
  • يعمل كل من DESC وASC مع الكلمة الأساسية ORDER BY. ويمكن أيضًا استخدامها مع كلمات رئيسية أخرى مثل حيث الشرطية و LIMIT
  • الإعداد الافتراضي لـ ORDER BY عندما لا يتم تحديد أي شيء بشكل صريح هو ASC.