使用MySql选择记录范围

这是我的查询

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.

相关文章

昨天的考试过程中,有个考点的服务器蓝屏重启后发现Mysql启动不了(5.6.45 x32版本,使用innoDB),重装后...
整数类型 标准 SQL 中支持 INTEGER 和 SMALLINT 这两种类型,MySQL 数据库除了支持这两种类型以外,还扩...
一条 SQL 查询语句结构如下: SELECT DISTINCT <select_list> FROM <left_table&...
数据备份 1. 备份数据库 使用 mysqldump 命令可以将数据库中的数据备份成一个文本文件,表的结构和数据...
概述 在实际工作中,在关系数据库(MySQL、PostgreSQL)的单表数据量上亿后,往往会出现查询和分析变慢...
概述 触发器是 MySQL 的数据库对象之一,不需要程序调用或手工启动,而是由事件来触发、激活,从而实现...