LIMIT et OFFSET

Ne renvoyer qu'une partie des lignes : les n premières, ou une page commençant après m lignes.

Syntaxe

SELECT … ORDER BY … LIMIT n [OFFSET m];
SELECT … ORDER BY … OFFSET m ROWS FETCH FIRST n ROWS ONLY;
  • La forme FETCH est la norme SQL. SQL Server utilise TOP ou OFFSET … FETCH ; Oracle utilise FETCH FIRST.

Exemple

SELECT name, unit_price FROM products ORDER BY unit_price DESC, name LIMIT 3 OFFSET 3;

La deuxième page de trois produits, du plus cher au moins cher.

Tables utilisées : products. Essayez-le dans une leçon ci-dessous.

Erreurs courantes

  • Sans ORDER BY, les lignes obtenues ne sont pas définies.
  • Un OFFSET élevé lit et saute encore toutes les lignes précédentes, donc les pages profondes deviennent lentes.

Pratiquer