Обмеження MySQL & OFFSET з прикладами

Anonim

Що таке ключове слово LIMIT?

Ключове слово limit використовується для обмеження кількості рядків, що повертаються в результаті запиту.

Він може використовуватися разом із командами SELECT, UPDATE OR DELETE, обмежити синтаксис ключового слова

Синтаксис ключового слова 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 проти 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 використовується, щоб обмежити кількість рядків, повернутих із набору результатів.
  • Числом LIMIT може бути будь-яке число від нуля (0), що йде вгору. Коли в якості обмеження вказано нуль (0), із набору результатів не повертаються рядки.
  • Значення OFF SET дозволяє вказати, який рядок починати з отримання даних
  • Він може використовуватися разом із командами SELECT, UPDATE OR DELETE, обмежити синтаксис ключового слова