这是我的查询:

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决定查询执行后将会有多少行,并且偏移决定记录将从哪些记录中过滤.

Read this tutorial for offset.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。