MySQL LIMIT & OFFSET с примери

Какво представлява ключовата дума LIMIT?

Ключовата дума limit се използва за ограничаване на броя на редовете, върнати в резултат от заявка.

Може да се използва заедно с командите SELECT, UPDATE ИЛИ DELETE LIMIT синтаксис на ключова дума

Синтаксисът за ключовата дума LIMIT е както следва

SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT  N;

ТУК

  • „ИЗБЕРЕТЕ {име на поле(а) | *} FROM tableName(s)” е SELECT израз съдържащи полетата, които бихме искали да върнем в нашата заявка.
  • „[WHERE условие]“ не е задължително, но когато е предоставено, може да се използва за указване на филтър в набора от резултати.
  • „ГРАНИЦА N“ е ключовата дума и N е всяко число, започващо от 0, поставяйки 0, тъй като ограничението не връща никакви записи в заявката. Поставянето на число, например 5, ще върне пет записа. Ако записите в указаната таблица са по-малко от N, тогава всички записи от заявената таблица се връщат в резултатния набор.

Нека да разгледаме един пример –

SELECT *  FROM members LIMIT 2;
membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
1 Janet Jones Female 21-07-1980 NULL First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL jj@fstreet.com NULL

Както можете да видите от горната екранна снимка, само двама членове са върнати.

Получаване на списък от десет (10) члена само от базата данни

Да предположим, че искаме да получим списък с първите 10 регистрирани членове от базата данни Myflix. Ще използваме следния скрипт, за да постигнем това.

SELECT *  FROM members LIMIT 10;

Изпълнението на горния скрипт ни дава резултатите, показани по-долу

membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
1 Janet Jones Female 21-07-1980 NULL First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL jj@fstreet.com NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 rm@tstreet.com NULL
4 Gloria Williams Female 14-02-1984 NULL 2nd Street 23 NULL NULL NULL NULL
5 Leonard Hofstadter Male NULL NULL Woodcrest NULL 845738767 NULL NULL
6 Sheldon Cooper Male NULL NULL Woodcrest NULL 976736763 NULL NULL
7 Rajesh Koothrappali Male NULL NULL Woodcrest NULL 938867763 NULL NULL
8 Leslie Winkle Male 14-02-1984 NULL Woodcrest NULL 987636553 NULL NULL
9 Howard Wolowitz Male 24-08-1981 NULL SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me NULL

Обърнете внимание, че само 9 члена са върнати в нашата заявка, тъй като N в клаузата LIMIT е по-голям от общия брой записи в нашата таблица.

Пренаписване на горния скрипт, както следва

SELECT *  FROM members LIMIT 9;

Връща само 9 реда в нашия набор от резултати на заявката.

Използване на OFF SET в заявката LIMIT

- ИЗМЕСТВАНЕ стойност също най-често се използва заедно с ключовата дума LIMIT. Стойността OFF SET ни позволява да посочим кой ред да започне от извличането на данни

Да предположим, че искаме да получим ограничен брой членове, започвайки от средата на редовете, можем да използваме ключовата дума LIMIT заедно със стойността на отместването, за да постигнем това. Скриптът, показан по-долу, получава данни, започвайки от втория ред и ограничава резултатите до 2.

SELECT * FROM `members` LIMIT 1, 2;

Изпълнение на горния скрипт в MySQL workbench срещу myflixdb дава следните резултати.

membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL jj@fstreet.com NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 rm@tstreet.com NULL

Note that here OFFSET = 1 Hence row#2 is returned & Limit = 2, Hence only 2 records are returned

Кога трябва да използваме ключовата дума LIMIT?

Да предположим, че разработваме приложението, което работи върху myflixdb. Нашият системен дизайнер ни помоли да ограничим броя на записите, показвани на страница, до 20 записа на страница, за да се противопоставим на бавното зареждане. Как да приложим системата, която отговаря на тези потребителски изисквания? Ключовата дума LIMIT е полезна в такива ситуации. Ще можем да ограничим резултатите, върнати от заявка, до 20 записа само на страница.

Oбобщение

  • Ключовата дума LIMIT на се използва за ограничаване на броя на редовете, върнати от набор от резултати.
  • Числото LIMIT може да бъде всяко число от нула (0) нагоре. Когато нула (0) е зададена като ограничение, не се връщат редове от набора с резултати.
  • Стойността OFF SET ни позволява да посочим кой ред да започне от извличането на данни
  • Може да се използва заедно с командите SELECT, UPDATE ИЛИ DELETE LIMIT синтаксис на ключова дума