logo

حدود MySQL

يتم استخدام استعلام حد MySQL لـ يقيد عدد الصفوف التي يتم إرجاعها من مجموعة النتائج، بدلاً من جلب المجموعة الكاملة في قاعدة بيانات MySQL. تعمل جملة Limit مع عبارة SELECT لإرجاع العدد المحدد من الصفوف فقط. يقبل هذا الاستعلام وسيطة واحدة أو وسيطتين فقط، ويجب أن تكون قيمهما صفرًا أو أي عدد صحيح موجب.

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

للحصول على الصفوف المحددة فقط من الجدول، يستخدم MySQL التابع حد جملة، بينما يستخدم SQL قمة جملة، وتستخدم Oracle رونوم جملة مع يختار إفادة.

بناء الجملة

فيما يلي بناء جملة استخدام الاستعلام الحدي في ماي إس كيو إل :

 SELECT column_list FROM table_name LIMIT offset, count; 

في بناء الجملة أعلاه، يمكننا أن نرى:

قائمة_الأعمدة: إنه اسم العمود الذي تريد إرجاعه.

اسم الطاولة: إنه اسم الجدول الذي يحتوي على اسم العمود الخاص بك.

عوض: يحدد رقم الصف الذي تريد العودة منه. تبدأ إزاحة الصف من 0، وليس 1.

عدد: يحدد الحد الأقصى لعدد الصفوف التي تريد إرجاعها.

ويوضح التمثيل المرئي التالي الأمر بشكل أكثر وضوحًا:

حدود MySQL

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

بند LIMIT مع بند ORDER BY

يحتاج المستخدم إلى استخدام جملة Limit مع جملة Order By . بدون استخدام جملة Order By، سوف تحصل على النتيجة في أمر غير محدد . في هذه الحالة، من الصعب معرفة نتائج الاستعلام من أي صفوف. لذا، فهي عادة جيدة للاستخدام المجموعة حسب الجملة مع جملة Limit للحصول على الصفوف بترتيب معين.

يمكن استخدام بناء الجملة التالي للحصول على النتيجة بترتيب فريد:

 SELECT column_list FROM table_name GROUP BY order_expression LIMIT offset, count; 

أمثلة على حدود MySQL

دعونا نقوم بإنشاء جدول نموذجي في قاعدة البيانات يحتوي على البيانات التالية ونفهم كيفية عمل جملة الحد في MySQL باستخدام أمثلة مختلفة:

الجدول: الموظفين

حدود MySQL

1. حد MySQL لإرجاع الصفوف الأعلى أو الأدنى

يستخدم البيان التالي للحصول على أفضل خمسة موظفين أصغر سنا:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

يقوم هذا البيان أولاً بفرز عمر الموظف باستخدام عبارة 'التجميع حسب'، ثم تقوم عبارة 'الحد' بإرجاع النتائج الخمسة الأولى. بعد تنفيذ الخطوات السابقة سنحصل على النتيجة التالية:

حدود MySQL

2. حد MySQL للحصول على نطاق من الصفوف باستخدام الإزاحة

في بعض الأحيان تريد الحصول على نتيجة بين نطاقات القيم. على سبيل المثال، لديك عدد كبير من الصفوف لعرض البيانات على التطبيقات، ثم قم بتقسيمها إلى صفحات، وكل صفحة تحتوي على 10 صفوف كحد أقصى في الجدول. في هذه الحالة، يمكنك استخدام الاستعلام التالي للحصول على نطاق من الصفوف:

 SELECT emp_id, emp_name, income FROM employees ORDER BY income DESC LIMIT 3,7; 

تقوم هذه العبارة بإرجاع الصفوف التي تبدأ من الصف رقم 3 وتنتقل إلى الصف السابع كحد أقصى. كما أنه يقوم بفرز دخل الموظف من الأعلى إلى الأدنى. قم بتنفيذ الاستعلام، وسوف تحصل على الإخراج التالي:

تغيير إضافة عمود أوراكل
حدود MySQL

3. حد MySQL مع جملة WHERE

يمكن أيضًا استخدام MySQL Limit باستخدام عبارة WHERE . يقوم أولاً بالتحقق من الشرط المحدد في الجدول وينتج الصفوف المطابقة للشرط.

يحدد هذا الاستعلام أول خمسة موظفين تزيد أعمارهم عن 30 عامًا. هنا، استخدمنا أيضًا عبارة 'الترتيب حسب' لفرز الموظفين بترتيب تنازلي باستخدام دخلهم.

 SELECT emp_name, emp_age, income FROM employees WHERE emp_age>30 ORDER BY income DESC LIMIT 5; 

بعد تنفيذ العبارة أعلاه بنجاح، سنحصل على النتيجة التالية:

حدود MySQL

4. MySQL LIMIT للحصول على أعلى أو أدنى قيمة

في بعض الأحيان نريد الحصول على الصفوف ذات القيمة الأعلى أو الأدنى. في هذه الحالة، يمكننا استخدام جملة MySQL LIMIT التالية للحصول على النتيجة المتوقعة:

 SELECT column_list FROM table_name ORDER BY expression LIMIT n-1, 1; 

في بناء الجملة هذا، تقوم جملة LIMIT n-1, 1 بإرجاع صف واحد يبدأ من الصف n.

على سبيل المثال، يقوم الاستعلام التالي بإرجاع معلومات الموظف الذي لديه ثاني أعلى دخل:

 SELECT emp_name, city, income FROM employees ORDER BY income LIMIT 1, 1; 

تنفيذ البيان أعلاه، فإنه سوف يعطي الاستعلام التالي:

حدود MySQL

تجدر الإشارة إلى أن الاستعلام أعلاه يعمل فقط عندما لا يحتوي الجدول الخاص بك على موظفين لديهما بعض الدخل. في هذه الحالة سوف نستخدم DENSE_RANK () للحصول على نتيجة أكثر دقة.