در SQL، برای محدود کردن تعداد نتایج برگشتی از یک دستور SELECT
از دو عبارت LIMIT
و OFFSET
استفاده میشود. این دو ابزار به شما کمک میکنند تا تعداد مشخصی از رکوردها را از نتایج جستجو برگشت دهید و یا نتایج را از یک نقطه خاص شروع کنید.
1. LIMIT:
عبارت LIMIT
برای محدود کردن تعداد رکوردهای برگشتی استفاده میشود. به کمک آن میتوانید مشخص کنید که SQL فقط تعداد خاصی از نتایج را نمایش دهد.
ساختار:
FROM جدول
LIMIT تعداد;
مثال:
فرض کنید میخواهید فقط 5 کاربر اول را از جدول "کاربران" بازیابی کنید:
LIMIT 5;
این دستور فقط 5 رکورد اول را برمیگرداند.
2. OFFSET:
عبارت OFFSET
برای تعیین نقطه شروع نتایج استفاده میشود. به عبارت دیگر، با استفاده از OFFSET
میتوانید مشخص کنید که نتایج از کدام رکورد شروع شود.
ساختار:
FROM جدول
LIMIT تعداد
OFFSET تعداد_نتایج_جهت_پرش;
مثال:
فرض کنید میخواهید از رکورد ششم تا دهم دادهها را بازیابی کنید. شما میتوانید از LIMIT
برای تعیین تعداد نتایج و از OFFSET
برای پرش از رکوردهای قبلی استفاده کنید:
LIMIT 5 OFFSET 5;
در این مثال، LIMIT 5
تعیین میکند که پنج رکورد باید برگشت داده شود، و OFFSET 5
میگوید که از رکورد ششم شروع شود.
ترکیب LIMIT و OFFSET:
برای انجام عملیاتهایی مانند صفحهبندی در نتایج (برای نمایش چندین صفحه از دادهها)، معمولاً از ترکیب LIMIT
و OFFSET
استفاده میشود.
مثال:
فرض کنید که میخواهید 10 رکورد را در هر صفحه نشان دهید و به صفحه 3 بروید. در این صورت، باید 20 رکورد اول را پرش کنید و سپس 10 رکورد بعدی را نمایش دهید:
LIMIT 10 OFFSET 20;
این دستور نتایج را از رکورد 21ام شروع کرده و تا رکورد 30ام ادامه میدهد.
نکات:
-
ترتیب نتایج: وقتی از
LIMIT
وOFFSET
استفاده میکنید، معمولاً بهتر است نتایج را با استفاده ازORDER BY
مرتب کنید تا ترتیب نتایج ثابت باشد.SELECT * FROM کاربران
ORDER BY نام
LIMIT 5 OFFSET 5; -
کاربرد در صفحهبندی: این تکنیک در مواقعی که نیاز دارید نتایج را در صفحات مختلف تقسیم کنید، بسیار مفید است. برای هر صفحه، مقدار
OFFSET
باید به تعداد رکوردهای قبلی ضرب در تعداد رکوردهای هر صفحه تنظیم شود.
در نتیجه، ترکیب LIMIT
و OFFSET
ابزاری بسیار کارآمد برای مدیریت نتایج در پایگاه دادهها است.
