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

Anonim

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

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

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

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

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

ТУК

  • "SELECT {име на поле | |}} ОТ имена на таблица" е операторът SELECT, съдържащ полетата, които бихме искали да върнем в нашата заявка.
  • „[WHERE условие]“ не е задължително, но когато е предоставено, може да се използва за задаване на филтър в набора от резултати.
  • „LIMIT 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 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it. 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 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it. 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

Стойността OFF SET също се използва най-често заедно с ключовата дума 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 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
Note that here OFFSET = 1 Hence row#2 is returned & Limit = 2, Hence only 2 records are returned

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

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

Обобщение

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