sqlite3与mysql 分页产生的区别

1、Mysql 分页语法:
SELECT * FROM table LIMIT [offset,] rows
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

Mysql select 的语法:
SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY] [DISTINCT | DISTINCTROW | ALL] select_expression,... [INTO OUTFILE 'file_name' export_options] [FROM table_references [WHERE where_definition] [GROUP BY col_name,...] [HAVING where_definition] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] [LIMIT [offset,] rows] [PROCEDURE procedure_name] ]

LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。
其中offset是偏移量,为可选参数,说明从第几行开始读取数据。
rows是返回的结果集的最大行数
这两个参数要求为整数。

例如:
返回前15行产品信息
select * from itlife365 limit 15; 相当于limit 0,15
返回第31到第45行数据
select * from itlife365 limit 30,15; 注意offset的序号从0开始
返回第18行后的所有数据
select * from itlife365 limit 18,-1; 这里-1表示返回所有数据直到记录的最后一行。

【利用limit进行分页】
学习了Limit的用法,下面我们看在MySQL中如何进行分页。
我们假设每页要显示pageSize行数据,当前要显示的是第pageCount页,所用的SQL语句为:

select * from itlife365 limit (pageCount-1)*pageSize,pageSize

其中(pageCount-1)*pageSize是前面几页要显示的行数,共提取pageSize行数据。

2、sqlite3 的分页语法:
官方网站:http://www.sqlite.org/lang_select.html#orderby

sqlite> select * from student limit 5 offset 10

注意:mysql 与sqlite3.exe 分页的参数offset 的位置不同,位置不对将报错。
在hibernate 与sqlite3.exe 进行分页的时候,记得区别。
hibernate 默认传递的值第一个是 offset 的值,第二个是limit的值。
关于hibernate分页的原理查看。


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年11月    »
123
45678910
11121314151617
18192021222324
252627282930
搜索
标签列表
网站分类
最新留言
    文章归档
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.闽ICP备11018667号-2