Return True - SQL - کار با LIMIT در دیتابیس

SQL - کار با LIMIT در دیتابیس

در این مقاله میخوایم در باره LIMIT حرف بزنیم و اینکه چطوری میشه اطلاعات برگشتی از SELECT رو در تعداد محدود تری دریافت کنیم. برای مثال اگه 1000 تا کاربر داشته باشیم، فقط 5 تای اول رو بهمون نشون بده و یا 10 تای دوم.

مقدمه ای بر LIMIT

قسمت LIMIT توی SELECT اختیاریه ( مثل WHERE ) و کارش اینه که تعداد ردیف های برگشتی از دستور SELECT رو محدود کنیم.

نحوه استفاده از LIMIT به شکل زیر است:

SELECT select_list 
FROM table_name
ORDER BY sort_expression
LIMIT row_count

در نتیجه دستور بالا، تعداد ردیف های برگشتی از دیتابیس اگه بیشتر از مقدار row_count باشه، دقیقا به تعداد row_count برمیگردونه. پس این منطقیه که اگر مقدار row_count رو 0 بدیم، هیچی بهمون نمایش داده نشه. ولی اگه مقدار row_count رو NULL بدیم، تمامی ردیف ها رو بهمون نشون میده ( مثل زمانی که اصلا LIMIT نداریم ).

در صورتی که بخوایم تعدادی از ردیف های برگشتی رو بیخیال بشیم و بعد از اون تعداد، به تعداد row_count ردیف نمایش بدیم از OFFSET استفاده میکنیم. به کد زیر توجه کنین:

SELECT select_list
FROM table_name
LIMIT row_count OFFSET row_to_skip;

توی این مثال، اول تعداد row_to_skip دریف رد میشه بعد به تعداد  row_count  ردیف نمایش داده میشه. و این موضوع هم منطقیه که اگه row_to_skip رو 0 بدیم، مثل اینه که اصلا از OFFSET استفاده نکردیم. همچنین، بکار بردن کلمه OFFSET اختیاریه و میتونیم این دستور رو به شکل زیر بنویسیم:

SELECT select_list
FROM table_name
LIMIT row_count row_to_skip;

مثال هایی از  LIMIT

 بیاین با هم چنتا مثال از  LIMIT ببینیم تا بهتر درکش کنیم:

فرض کنین جدولی به اسم Film داریم با ساختار زیر با یک سری اطلاعات پیشفرض توش:

SQL - کار با LIMIT در دیتابیس

1) استفاده از LIMIT برای محدود کردن تعداد ردیف های برگشتی Query

مثال زیر به ما 5 فیلم اولی که در جدول اضافه شدن رو نشون میده:

SELECT
	film_id,
	title,
	release_year
FROM
	film
ORDER BY
	film_id
LIMIT 5;

از ORDER BY استفاده کردیم تا اطلاعات جدول رو برطبق film_id و صعودی لیست کنیم. ( اگه نمیدونی ORDR BY چیه، یه سر برو به  کار با SELECT ORDER BY در دیتابیس  )

SELECT
	film_id,
	title,
	release_year
FROM
	film
ORDER BY
	film_id
LIMIT 5;

نتیجه دستور بالا به شکل زیر خواهد بود:

SQL - کار با LIMIT در دیتابیس

1) استفاده از LIMIT برای محدود کردن تعداد ردیف های برگشتی Query به همراه OFFSET

 

فرض کنین بخوایم 4 فیلم رو از جدول بخونیم ولی 3 فیلم اول رو بیخیال بشیم و بعد از اون 3 تا، 4 تای بعدی رو بخونیم. دستور به شکل زیر میشه:

SELECT
	film_id,
	title,
	release_year
FROM
	film
ORDER BY
	film_id
LIMIT 4 OFFSET 3;

و در نتیجه :

SQL - کار با LIMIT در دیتابیس

برای درک بهتر تصویر بالا رو با تصویر Query قبلی مقایسه کنین. میبینین 3 تای اول نیستن و بعد اون 3 تا، 4 تا ردیف از جدول نشون داده شده.

پس به شکل کلی اگه بخوام بگم، دستور LIMIT تعداد ردیف های برگشتی از Table رو محدود میکنه واسمون.

نظرات