OFFSET或LIMIT在Mysql中有效

时间:2013-03-12 07:11:59

标签: php mysql sql performance

我将在我的网页上制作分页。我想知道哪个是最有效的

"SELECT * FROM table LIMIT 10,10"

OR

"SELECT * FROM table LIMIT 10 OFFSET 10"

是否有任何区别,如果是,哪个更好,效率更高?

2 个答案:

答案 0 :(得分:1)

没有区别。提供偏移语法以与postgres兼容。请参阅man页面

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

答案 1 :(得分:1)

没有区别。 来自MySQL reference SELECT syntax

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

一些例子

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

我更喜欢写长版本,它是ANSI标准,你可以避免陷入错误的错误顺序。

仅限LIMIT:

  

使用一个参数,该值指定从结果集开头返回的行数:

     

使用两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量为0(不是1):

     

为了与PostgreSQL兼容,MySQL还支持LIMIT row_count OFFSET偏移语法。