Для цього використовується запит MySQL Limit обмежувати кількість рядків, що повертається з набору результатів, а не вибірка весь набір у базі даних MySQL. Речення Limit працює з інструкцією SELECT для повернення лише вказаної кількості рядків. Цей запит приймає лише один або два аргументи, а їх значення мають бути нулем або будь-яким додатним цілим числом.
Це важливо в такому випадку, коли таблиця містить тисячі рядків або ви хочете повернути лише нещодавно вставлені дані. Іншими словами, якщо ви не зацікавлені в отриманні всіх рядків, повернутих із запиту, використовуйте пропозицію MySQL Limit із оператором SELECT. Це покращує продуктивність запиту та навіть запобігає збою системи, коли таблиця містить велику кількість даних.
Щоб отримати лише вказані рядки з таблиці, MySQL використовує МЕЖА пункт, тоді як SQL використовує ТОП і Oracle використовує ROWNUM пункт з ВИБРАТИ заява.
Синтаксис
Нижче наведено синтаксис використання Limit query в MySQL :
SELECT column_list FROM table_name LIMIT offset, count;
У наведеному вище синтаксисі ми можемо побачити:
Список_стовпців: Це ім’я стовпця, який потрібно повернути.
Table_name: Це назва таблиці, яка містить назву вашого стовпця.
Зсув: Він визначає номер рядка, з якого потрібно повернутися. Зміщення рядка починається з 0, а не з 1.
Рахувати: Він визначає максимальну кількість рядків, які потрібно повернути.
Наступне візуальне представлення пояснює це більш чітко:
ПРИМІТКА. Якщо ви вказуєте лише один аргумент із пропозицією Limit, MySQL припускає це, щоб визначити максимальну кількість рядків для повернення виводу з набору результатів. У цьому випадку аргументи обмеження, зміщення та кількість еквівалентні.
Речення LIMIT із реченням ORDER BY
Користувачеві потрібно використовувати пункт Limit із пунктом Order By. Без використання пропозиції Order By ви отримаєте результат у невизначений порядок . У такому випадку важко знати, з яких рядків запит повертає результат. Отже, це корисна звичка використовувати Речення Group By з реченням Limit для отримання рядків у певному порядку.
Для отримання результату в унікальному порядку можна використовувати наступний синтаксис:
SELECT column_list FROM table_name GROUP BY order_expression LIMIT offset, count;
Приклади обмежень MySQL
Давайте створимо зразок таблиці в базі даних, яка містить такі дані, і зрозуміємо, як працює пропозиція Limit у MySQL на різних прикладах:
Таблиця: співробітники
1. Обмеження MySQL для повернення найвищих або найнижчих рядків
Наступне твердження використовувалося для визначення п’ятірки наймолодших працівників:
SELECT * FROM employees ORDER BY emp_age LIMIT 5;
Цей оператор спочатку сортує вік співробітника за допомогою речення Group By, а потім речення Limit повертає результат із першої п’ятірки. Після виконання вищезазначених кроків ми отримаємо наступний результат:
2. Обмеження MySQL для отримання діапазону рядків за допомогою зміщення
Іноді потрібно отримати результат між діапазонами значень. Наприклад, у вас є велика кількість рядків для відображення даних про програми, а потім розділіть їх на сторінки, і кожна сторінка містить максимум 10 рядків у таблиці. У такому випадку ви можете використати такий запит, щоб отримати діапазон рядків:
SELECT emp_id, emp_name, income FROM employees ORDER BY income DESC LIMIT 3,7;
Цей оператор повертає рядки, починаючи з рядка номер 3 і переходить максимум до 7 рядків. Він також сортує дохід працівника від найвищого до найнижчого. Виконайте запит, і ви отримаєте наступний результат:
читати файли json
3. Обмеження MySQL із пропозицією WHERE
MySQL Limit також можна працювати з пропозицією WHERE. Спочатку він перевіряє вказану умову в таблиці та створює рядки, які відповідають умові.
Цей запит вибирає перших п’ятьох працівників, вік яких перевищує 30 років. Тут ми також використали пункт Order By, щоб відсортувати працівників у порядку спадання за їхнім доходом.
SELECT emp_name, emp_age, income FROM employees WHERE emp_age>30 ORDER BY income DESC LIMIT 5;
Після успішного виконання наведеного вище оператора ми отримаємо наступний результат:
4. ОБМЕЖЕННЯ MySQL, щоб отримати n-е найбільше або найменше значення
Іноді ми хочемо отримати рядки з n-м найвищим або найменшим значенням. У такому випадку ми можемо використати наступну пропозицію MySQL LIMIT, щоб отримати очікуваний результат:
SELECT column_list FROM table_name ORDER BY expression LIMIT n-1, 1;
У цьому синтаксисі пропозиція LIMIT n-1, 1 повертає 1 рядок, який починається з рядка n.
Наприклад, наступний запит повертає інформацію про працівника, який має другий за величиною дохід:
SELECT emp_name, city, income FROM employees ORDER BY income LIMIT 1, 1;
Виконання наведеного вище оператора видасть такий запит:
Слід зазначити, що наведений вище запит працює лише тоді, коли ваша таблиця не містить двох працівників, які мають певний дохід. У такому випадку ми будемо використовувати DENSE_RANK () щоб отримати точніший результат.