这是我的查询:
SELECT @curRow := @curRow + 1 AS row_number,myTable.id
FROM myTable
JOIN (SELECT @curRow := 0) r
这给了我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到10之间的行怎么办?使用LIMIT 5可以轻松选择1到5,但如何选择中间的行范围呢?
最佳答案
SELECT @curRow := @curRow + 1 AS row_number,myTable.id
FROM myTable LIMIT 5 OFFSET 6;
使用具有限制的OFFSET.
LIMIT决定查询执行后将会有多少行,并且偏移决定记录将从哪些记录中过滤.