2013-03-12 2 views
0

Je vais faire de la pagination sur ma page Web. Je veux savoir ce qui est le plus efficaceOFFSET OU LIMIT qui est efficace dans Mysql

"SELECT * FROM table LIMIT 10,10" 

OU

"SELECT * FROM table LIMIT 10 OFFSET 10" 

Y at-il une différence, si oui, ce qui est plus mieux et plus efficace?

+4

Il n'y a pas de différence. –

Répondre

1

Il n'y a pas de différence. La syntaxe offset est proposée pour être compatible avec postgres. Voir man page

For compatibility with PostgreSQL, MySQL also supports the LIMIT row_count OFFSET offset syntax. 
1

Il n'y a pas de différence. De MySQL reference SELECT syntax

[LIMIT {[offset,] row_count | row_count OFFSET offset}] 

Quelques exemples

LIMIT 5      // limit the result to the first 5 rows 
LIMIT 10,5.    // limit the result to 5 rows, beginning with row 11 
LIMIT 5 OFFSET 10 // same meaning 

Je préfère écrire la version longue, il est standard ANSI et vous éviter le piège à tromper l'ordre de params.

LIMIT seul:

Avec un argument, la valeur indique le nombre de lignes à retourner depuis le début de l'ensemble de résultats:

avec deux arguments, le premier argument spécifie le décalage de la la première ligne à retourner, et la seconde spécifie le nombre maximum de lignes à retourner. Le décalage de la ligne initiale est 0 (et non 1):

Pour la compatibilité avec PostgreSQL, MySQL prend également en charge la syntaxe de décalage LIMIT row_count OFFSET.

Questions connexes