MySQL ОБМЕЖЕННЯ ТА ЗМІЩЕННЯ з прикладами
Що таке ключове слово LIMIT?
Ключове слово limit використовується для обмеження кількості рядків, що повертаються в результаті запиту.
Його можна використовувати в поєднанні з командами SELECT, UPDATE OR DELETE. Синтаксис ключового слова LIMIT
Синтаксис ключового слова LIMIT такий
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
ТУТ
- «ВИБЕРІТЬ {назви полів | *} FROM tableName(s)” є Оператор SELECT містить поля, які ми хотіли б повернути в нашому запиті.
- «[умова WHERE]» є необов’язковим, але якщо надається, його можна використовувати для визначення фільтра для набору результатів.
- «ОБМЕЖЕННЯ N» є ключовим словом and 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 OR DELETE. Синтаксис ключового слова LIMIT