从MySQL查询返回第n条记录

pau*_*all 47 mysql

我期待从MySQL查询返回第2,第3或第4条记录(基于ID升序的查询)

问题是,我不会知道ID,只是它是查询中的第3行.

cmp*_*ken 88

SELECT * FROM table ORDER BY ID LIMIT n-1,1

它表示从记录n开始返回一条记录.

  • 我已将n,1更改为n-1,1,因为偏移量从0开始,而不是1 ..这是一个可接受的答案,因此向用户提供正确的详细信息. (6认同)

小智 33

接受的答案错误为1,偏移量为零索引:

来自doc:

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

SELECT*FROM tbl LIMIT 5,10; #检索行6-15

所以正确的查询将是

SELECT * FROM table ORDER BY ID LIMIT n-1,1
Run Code Online (Sandbox Code Playgroud)


Mik*_*icz 6

使用limit子句(在查询末尾添加'limit 3,1'以仅选择第三行).

以下是一些更多信息:http://php.about.com/od/mysqlcommands/g/Limit_sql.htm

  • 这将是 limit 2, 1 因为它是 0 索引。 (2认同)

Ase*_*rge 6

例如"LIMIT 10,5",它将跳过第一个数字指示的记录数,然后显示第二个数字指示的记录数.换句话说,它是"限制跳过,显示".

SELECT * FROM tblTesting LIMIT 3, 6
Run Code Online (Sandbox Code Playgroud)

将显示从第4记录到第9记录,显示总记录6

如果你想显示降序使用 DESC

SELECT * FROM tblTesting ORDER BY column_name DESC LIMIT 3, 6
Run Code Online (Sandbox Code Playgroud)

  • 更好地解释答案(至少在这种情况下对我来说更有意义)。 (2认同)