专业做网站建设制作服务,阿里云的网站建设花钱么,邯郸网站制作费用,百度竞价关键词出价技巧MySQL与Oracle的分页 当我们通过SQL去查询一个结果集的时候#xff0c;并不需要查看所有行#xff0c;可能只是查看前几行#xff0c;或者中间的几行。则需要像MySQL的limit或Oracle的ROWNUM与FETCH NEXT来实现。 MySQL
语法
SELECT * FROM table_name LIMIT [offset,] ro…MySQL与Oracle的分页 当我们通过SQL去查询一个结果集的时候并不需要查看所有行可能只是查看前几行或者中间的几行。则需要像MySQL的limit或Oracle的ROWNUM与FETCH NEXT来实现。 MySQL
语法
SELECT * FROM table_name LIMIT [offset,] row_count;LIMIT 是MySQL中用于限制返回结果行数的关键字。
table_name 是你要查询的表名。row_count 是你要返回的行数。offset 是可选的表示从查询结果的第几行开始返回通常用于分页查询。
实例
-- 写法1 不携带OFFSET
SELECT * FROM TEST LIMIT 10; -- 返回前10行-- 写法2 携带OFFSET 但携带OFFSET关键字
SELECT * FROM TEST LIMIT 10,5; -- 跳过前10行后再返回5行-- 写法3 携带OFFSET 并携带OFFSET关键字
SELECT * FROM TEST LIMIT 10 OFFSET 5; -- 跳过前5行后再返回10行不同的写法对应参数的顺序是不一致的这个需要注意。
Oracle
ROWNUM
语法
首先我们要这个ROWNUM是这个什么 在 Oracle 数据库中ROWNUM 是一个伪列虚拟列用于标识返回结果集中的行号。 ROWNUM 是在查询结果返回后才赋值的它的值是按照查询结果的顺序逐行递增的。 通常来说使用ROWNUM我们尽量还是需要子查询来配合使用因为如果当使用ORDER BY去进行排序的话ROWNUM是会根据排序后的结果集重新生成的这个时候这个行号就不是原来的行号了。另外当我们直接使用WHERE ROWNUM 1他会导致结果集未空的情况**因为ROWNUM 是在查询结果返回后才赋值的。**所以直接使用WHERE 则就直接过滤掉了。
实例
-- 返回从10行后的所有数据
SELECT * FROM (SELECT ROWNUM ROW_NUM FROM Test
) where ROW_NUM 10-- 返回从11行-20的数据
SELECT * FROM (SELECT ROWNUM ROW_NUM FROM Test
) where ROW_NUM 10 AND ROW_NUM 20FETCH NEXTOracle 12c及以上版本可用 FETCH NEXT 与FETCH FIRST 都是返回查询结果中的前 n 行。两个关键字同义。 语法
SELECT * FROM table_name
OFFSET n ROWS
FETCH NEXT m ROWS ONLY;OFFSET n ROWS跳过前 n 行即从第 n1 行开始返回结果。 FETCH NEXT m ROWS ONLY返回接下来的 m 行。
实例
SELECT ROWNUM FROM Test FETCH NEXT 10 ROWS ONLY; -- 返回前10行# 这里是MySQL没法通过只使用OFfSET使用的但是可以 limti 10,100000000 来实现 虽然不优雅但可以实现
SELECT ROWNUM FROM Test OFFSET 10 ROWS; -- 跳过10行返回之后的所有行SELECT ROWNUM FROM Test OFFSET 5 ROWS FETCH NEXT 10 ROWS ONLY; -- 跳过前5行后再返回10行