MySQL LIMIT & OFFSET с примерами
Что такое ключевое слово LIMIT?
Ключевое слово limit используется для ограничения количества строк, возвращаемых в результате запроса.
Его можно использовать в сочетании с командами SELECT, UPDATE или DELETE. Синтаксис ключевого слова LIMIT.
Синтаксис ключевого слова LIMIT следующий.
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
ВОТ
- «ВЫБРАТЬ {имя поля | *} FROM tableName(s)” это Оператор SELECT содержащий поля, которые мы хотели бы вернуть в нашем запросе.
- «[ГДЕ условие]» не является обязательным, но если оно указано, его можно использовать для указания фильтра в наборе результатов.
- «ЛИМИТ Н» это ключевое слово и 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 | 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 | 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 | 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 записей на страницу.
Резюме
- Ключевое слово LIMIT используется для ограничения количества строк, возвращаемых из набора результатов.
- Число LIMIT может быть любым числом от нуля (0) вверх. Если в качестве ограничения указано ноль (0), строки из набора результатов не возвращаются.
- Значение OFF SET позволяет нам указать, с какой строки начинать получение данных.
- Его можно использовать в сочетании с командами SELECT, UPDATE или DELETE. Синтаксис ключевого слова LIMIT.