الترتيب حسب في MySQL: استعلام DESC وASC مع مثال

نتائج الفرز

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

ما هو ORDER BY في 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 على ما يليwing بناء الجملة الأساسي.

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

    هنا

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

    أمثلة:

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

    SELECT * FROM members;

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

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


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

SELECT * FROM members ORDER BY date_of_birth DESC;

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

مثال DESC وASC

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

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

مثال DESC وASC

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

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

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

SELECT * FROM `members`;

تنفيذ البرنامج النصي أعلاه يعطي المتابعةwing النتائج المبينة أدناه.

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 إلى الحصول على المعلومات التاليةwing النتائج.

مثال DESC وASC

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

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

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

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

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

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

نبذة عامة

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