5

这是我的查询:

SELECT  @curRow := @curRow + 1 AS row_number,
    myTable.id
FROM    myTable
JOIN    (SELECT @curRow := 0) r

这给了我all记录的结果myTable。前任。

row_number    id
---------- -------
    1         100
    2         101
    3         102
    4         103
    5         104
    6         105
    7         105
    8         106
    9         107
   10         108
   11         109
   12         110
   13         111
   ...

如果我只需要选择 之间的行6 to 10怎么办?使用选择1 to 5很容易LIMIT 5,但是如何选择中间的行范围呢?

4

2 回答 2

7
SELECT  @curRow := @curRow + 1 AS row_number, myTable.id
   FROM myTable LIMIT 6, 5; 

这将显示记录 6、7、8、9、10

然后你得到像

row_number    id
---------- -------
    6         105
    7         105
    8         106
    9         107
   10         108
于 2013-08-16T11:57:04.230 回答
4
SELECT  @curRow := @curRow + 1 AS row_number,
    myTable.id
FROM myTable  LIMIT 5 OFFSET 6;

使用带有限制的偏移量。

LIMIT 决定查询执行后会有多少行,offset 决定从哪些记录中过滤记录。

阅读本教程以获取偏移量

于 2013-08-16T11:56:58.667 回答