MySQL使用ROWNUM获取数据(mysql的rownum)
MySQL ROWNUM是一种以行号的形式来记录查询结果行号的一种方式,该变量在MySQL 中以ROW_NUMBER()函数显示,用来记录当前运行中查询语句查出的结果行数,有时候也会被叫做”Silver Bullet”,是按照特定的排序顺序被自增的编号。如果没有指定排序顺序,它就会默认以结果出现的顺序来排序。通常,我们可以使用ROWNUM来实现分页数据查询和查找Top N记录。
如果要使用ROWNUM来获取数据,首先需要使用SELECT语句定义查询结果内容,并使用ROW_NUMBER来为结果集中的每行添加一个序列号,代码如下:
SELECT ROW_NUMBER()|
FROM 查询表 |
ORDER BY 排序字段 |
WHERE 查询条件
接下来使用WHERE过滤掉一般不需要的数据,并加上下面的筛选条件:
ROW_NUMBER()BETWEEN N_TO_M
其中,N表示查询结果中需要获取的最小序号,M表示查询结果中需要获取的最大序号,如果N和M相同,也可以使用以下语句:
ROW_NUMBER()= N
根据行号控制从结果集中取出的记录,从而实现MySQL的分页查询效果。
比如,我们要查询从1到10的名字:
SELECT ROW_NUMBER()AS ROWNUM, ID, NAME
FROM tb_student
ORDER BY ID
WHERE ROW_NUMBER() BETWEEN 1 AND 10
此查询只会返回从行号1到10的10条数据,实现分页查询的效果。
至此,就可以使用MySQL的ROW_NUMBER()来获取满足条件的数据了。它具有高效、易用的特点,可以有效帮助我们提高查询效率;同时,还可以使用多种优化技术,以提高数据库查询的速度。