درس اليوم سوف نناقش به طريقتين جداد علينا
فى استخراج النتائج من احد الجداول.
وهما
1. ترتيب النتائج (ابجديا) إعتمادا على احد حقول الجدول بإستخدام ORDER BY
2. تحديد عدد النتائج التى يتم استخراجها.
نبدأ على بركة الله.
ترتيب النتائج التى يتم استخراجها.
امر ضرورى ويستعمل بشكل متكرر فى اغلب تطبيقات الإنترنت.
كاترتيب النتائج ترتيب تصاعدى, او تنازلى سواء للأرقام او الحروف, الخ.
كيف يتم ترتيب النتائج؟ يتم بإستخدام مشروطة ORDER BY
على سبيل المثال.
نريد ان نستخرج اسماء الأعضاء من جدول الأعضاء, ويتم ترتيبهم بناء على تاريخ تسجيل كل عضو.
يتم الأمر بالشكل التالى
كود :
SELECT username FROM `users` ORDER BY reg_date
بالصيغة الموضحة بالمثال السابق, سيتم عرض اسماء الأعضاء.
بحيث يعرض من قام بالتسجيل فى شهر 1 (كامثال) قبل من قام بالتسجيل فى شهر 2
وهكذا ترتيب تصاعدى.
ويمكننا إعادة صياغة الكود اعلاه ليتم العرض بإستخدام ترتيب تنازلى.
كود :
SELECT username FROM `users` ORDER BY reg_date DESC
ملحوظات سريعة:
* بما ان MySQL تعمل مع العديد من اللغات, والتى تقوم انت بتحديدها فى الـ character set و collation (كما تم مناقشتهم سابقا) سيتم التعامل مع الترتيب الأبجدى بناء على اللغة التى تم وضع البيانات بها داخل الجداول.
* سوف تتعرض كثيرا للحاجة لإستخدام ORDER BY مع اكواد تحتوى على WHERE او JOINS وعليه, يجب وضع ORDER BY بعدهم وليس قبلهم.
نأتى للجزء الثانى من درس اليوم
وهو تحديد النتائج التى يتم استخراجها.
والمقصود بتحديد النتائج, يعنى الحد الأقصى من النتائج التى يتم استخراجها.
بمعنى, ماذا اذا قمنا بتطبيق امر SELECT سوف يخرج بالعديد من النتائج, ونحن لا نحتاج من هذه النتائج الا اول 10 نتائج فقط؟
هذا هو المقصود بالتحديد وهو يتم بإستخدام الأمر LIMIT
لنرى مثال على ذلك
كود :
SELECT * FROM `users` WHERE uid > 1 LIMIT 10
سوف يتم استخراج كل بيانات الأعضاء التى رقم الـ uid لهم اكبر من 1
وبعد ان اضفنا LIMIT 10 هذا يعنى انه سوف يتم استخراج 10 حقول فقط!.
كما يمكننا ان نستخرج عدد معين من النتائج, ابتدأ من عدد اخر.
بمعنى مثلا, نريد ان نستخرج 5 نتائج فقط, وهذه الخمسة نتائج يتم عدها من بعد اول 10 نتائج, يعنى ابتداء من الناتج رقم 11 الى الناتج 15
يتم الأمر بالصورة التالية
كود :
SELECT * FROM `users` LIMIT 10,5
ملحوظة صغيرة: دائما سوف تحتاج مع الأمر LIMIT ان تقوم بعمل ORDER BY لأن بدون ORDER BY انت لا تعلم كيف سيتم ترتيب النتائج (الإفتراضى يتم ترتيبه بواسطة الـ PK فى الجدول) لذلك ينصح بإستخدام ORDER BY دائما مع LIMIT
وتوضع LIMIT بنهاية الكود بعد ORDER BY
وشئ اخر, مازال هناك معلومة تنقصنا حول التحكم فى النتائج التى يتم استخراجها وهى بإستخدام GROUP BY لكن هذا الأمر سنتعلمه فى دروس لاحقة بإذن الله.
المصدر:
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]