اطلب حسب 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 يتم استخدامه كإعداد افتراضي.
- حدد {اسم الحقل (الأسماء) | *} من اسم (أسماء) الجدول هو البيان الذي يحتوي على الحقول والجدول (الجداول) التي يمكن الحصول على مجموعة النتائج منها.
- [أين الشرط] يعد اختياريًا ولكن يمكن استخدامه لتصفية البيانات وفقًا للحالة المحددة.
- ترتيب حسب اسم (أسماء) الحقل إلزامي وهو الحقل الذي سيتم إجراء الفرز عليه. ال MySQL تحدد الكلمة الأساسية DESC أن الفرز يجب أن يكون بترتيب تنازلي.
- [حد] يعد اختياريًا ولكن يمكن استخدامه لتحديد عدد النتائج التي يتم إرجاعها من مجموعة نتائج الاستعلام.
ما هي الكلمات الرئيسية DESC وASC؟
ASC هو الشكل القصير للصاعد | MySQL 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]
هنا
أمثلة:
دعونا الآن نلقي نظرة على مثال عملي -
SELECT * FROM members;
تنفيذ البرنامج النصي أعلاه في MySQL يعطينا العمل مع myflixdb النتائج التالية الموضحة أدناه.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
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 النتائج التالية الموضحة أدناه.
نفس الاستعلام بترتيب تصاعدي
اختر * من الأعضاء ORDER BY date_of_birth ASC
ملاحظة: القيم NULL تعني عدم وجود قيم (ليست صفرًا أو سلسلة فارغة). لاحظ الطريقة التي تم بها فرزهم.
مزيد من الأمثلة
دعونا نفكر في البرنامج النصي التالي لفرز SQL الذي يسرد جميع سجلات الأعضاء.
SELECT * FROM `members`;
يؤدي تنفيذ البرنامج النصي أعلاه إلى الحصول على النتائج التالية الموضحة أدناه.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
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 | |
---|---|---|---|---|---|---|---|
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 في SQL هي كلمة أساسية تصبح مفيدة في مثل هذه المواقف. يمكننا كتابة استعلام يقوم بفرز القائمة بترتيب تنازلي باستخدام تاريخ الدفع.
لنفترض أن قسم التسويق يريد الحصول على قائمة الأفلام حسب الفئة التي يمكن للأعضاء استخدامها لتحديد الأفلام المتوفرة في المكتبة عند استئجار الأفلام، ألن يكون من المنطقي أكثر البحث عن فرز أسماء فئات الأفلام وعناوينها تصاعديًا بحيث هل يمكن للأعضاء البحث بسرعة عن المعلومات من القائمة؟
تكون الكلمة الأساسية ASC مفيدة في مثل هذه المواقف؛ يمكننا الحصول على قائمة الأفلام مرتبة حسب اسم الفئة وعنوان الفيلم بترتيب تصاعدي.
الملخص
- فرز نتائج الاستعلام هو إعادة ترتيب الصفوف التي يتم إرجاعها من مجموعة نتائج الاستعلام إما بترتيب تصاعدي أو تنازلي.
- يتم استخدام الكلمة الأساسية DESC في SQL لفرز مجموعة نتائج الاستعلام بترتيب تنازلي.
- يتم استخدام الكلمة الأساسية ASC لفرز مجموعة نتائج الاستعلام بترتيب تصاعدي.
- يعمل كل من DESC وASC مع الكلمة الأساسية ORDER BY. ويمكن أيضًا استخدامها مع كلمات رئيسية أخرى مثل حيث الشرطية و LIMIT
- الإعداد الافتراضي لـ ORDER BY عندما لا يتم تحديد أي شيء بشكل صريح هو ASC.