这是我的疑问:
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
,但如何在两者之间选择行数?
答案 0 :(得分: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
答案 1 :(得分:4)
SELECT @curRow := @curRow + 1 AS row_number,
myTable.id
FROM myTable LIMIT 5 OFFSET 6;
使用带有限制的 OFFSET 。
LIMIT决定查询执行后会有多少行,而偏移量决定记录将从哪些记录中过滤。