LIMIT în MySQL

Citirea datelor Toate versiunile MySQL și MariaDB

Limitează numărul de rânduri returnate. Folosit pentru top-uri și paginare.

Sintaxă
SELECT ... LIMIT numar OFFSET sarite;

Ce face LIMIT

LIMIT se pune la finalul interogării și oprește rezultatul după un anumit număr de rânduri. Cu OFFSET sari peste primele rânduri, ceea ce este exact ce îți trebuie pentru paginare.

MySQL acceptă și forma scurtă LIMIT sarite, numar. Atenție la ordinea valorilor: în forma scurtă, primul număr este câte rânduri sari.

Folosește LIMIT împreună cu ORDER BY. Altfel nu știi care rânduri primești.

Parametri

Parametru Descriere
numar Câte rânduri returnezi cel mult.
sarite Opțional. Câte rânduri sari de la început.

Exemple

Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.

CREATE TABLE produse (
  id INT PRIMARY KEY,
  nume VARCHAR(50) NOT NULL,
  categorie VARCHAR(30),
  pret INT,
  stoc INT
);

INSERT INTO produse VALUES
  (1, 'Laptop', 'Electronice', 3500, 4),
  (2, 'Mouse', 'Electronice', 80, 25),
  (3, 'Birou', 'Mobilier', 900, 0),
  (4, 'Scaun', 'Mobilier', 650, 7),
  (5, 'Monitor', 'Electronice', 1200, 3);

Exemplul 1: Top 3 cele mai scumpe produse

SELECT nume, pret FROM produse ORDER BY pret DESC LIMIT 3;

Rezultat

+---------+------+
| nume    | pret |
+---------+------+
| Laptop  | 3500 |
| Monitor | 1200 |
| Birou   |  900 |
+---------+------+

Exemplul 2: Paginare: a doua pagină, câte 2 pe pagină

SELECT id, nume FROM produse ORDER BY id LIMIT 2 OFFSET 2;

SELECT id, nume FROM produse ORDER BY id LIMIT 2, 2;

Rezultat

+----+-------+
| id | nume  |
+----+-------+
|  3 | Birou |
|  4 | Scaun |
+----+-------+
+----+-------+
| id | nume  |
+----+-------+
|  3 | Birou |
|  4 | Scaun |
+----+-------+

Greșeli frecvente

  • Inversezi valorile în forma scurtă: LIMIT 10, 2 înseamnă „sari 10, ia 2”, nu „ia 10”.
  • Folosești OFFSET mare pe tabele cu milioane de rânduri. MySQL tot citește rândurile sărite. Pentru paginare rapidă, filtrează după ultimul id văzut: WHERE id > 5000 ORDER BY id LIMIT 20.

Comenzi înrudite

  • ORDER BY: Ordonează rezultatele crescător (ASC) sau descrescător (DESC) după una sau mai multe coloane.
  • SELECT: Citește date dintr-un tabel. Este comanda SQL folosită cel mai des.