当前位置:编程学习 > JAVA >>

小弟求救!!jsp网站,分页代码怎么写啊,对mysql不了解,求答案!!!

ps=conn.prepareStatement("select top "+pageSize+" * from goods where goodsId not in (select top "+(pageNow-1)*pageSize+" goodsId from goods)");
这是在sql2005中写的代码,当前页面大小pagesize,pagenow表示当前页面,换用mysql怎么写这句查询语句,用原句在mysql中出错。 --------------------编程问答-------------------- 在线等啊,求各位牛人指点啊!! --------------------编程问答-------------------- 呵呵,mysql是专门有分页的sql语法的,我举个例子。。。select * from user limit 0,5;这样就可以了,0是指从哪一条数据开始,5就是读取多少条数据。 --------------------编程问答-------------------- mysql 用limit关键字 --------------------编程问答-------------------- 给你个MYSQL的分页过程,记得把分给我,呵呵

BEGIN
/*
**************过程简介**************
MYSQL5.0通用分页存储过程
作者:xiaof
日期:2009-03-08,妇女节完成哒,嘿嘿^^V
说明:该过程实现了分页功能。支持where条件及order排序,但不支持group分组及多表级联查询

由于MYSQL目前无法获取动态SQL返回值(需临时表支持,实现起来太复杂了,晕一个先@@)
所以将总记录数及当前页数首先进行查询,然后再将总记录数及页数放到每一条记录中
**************参数说明**************
表名
IN tableName varchar(100),
字段名,多个字段以,分隔
IN filedsNames varchar(100),
每页显示记录数

IN pageSize int,
当前页

IN pageIndex int,
排序,多个排序以,分隔
IN sortName varchar(500),
where条件,多个条件以,分隔
IN strWhere varchar(500)
**************调用方法**************
call PageDiv('t_user','vcName,vcPassword',3,1,'','')
*/
DECLARE filedlist varchar(500);/*字段列表*/
DECLARE counts int default 0;/*总记录数*/
DECLARE intPages int default 0;/*总页数*/
DECLARE strPages varchar(20);/*总页数*/

/*获取总记录数*/
if strWhere=''||strWhere=null then
set @sqlStr=concat("select count(*) into @counts from ",tableName);
else
set @sqlStr=concat("select count(*) into @counts from ",tableName," where ",strWhere);
end if;
PREPARE STMT FROM @sqlStr;
EXECUTE STMT;

/*获取总页数*/
if strWhere=''||strWhere=null then
set @sqlStr=concat("select count(*)/",pageSize," into @intPages from ",tableName);
else
set @sqlStr=concat("select count(*)/",pageSize," into @intPages from ",tableName," where ",strWhere);
end if;
PREPARE STMT FROM @sqlStr;
EXECUTE STMT;

/*总页数返回值小于1的,均按1取值;大于1但有小数位的,则通过截取字符串的方式加1*/
if(@intPages<1) then
set @intPages=1;
elseif(@intPages>1) then
set @strPages=cast(@intPages as char);
if(INSTR(@strPages,".")>=0) then
set @strPages=LEFT(@strPages,INSTR(@strPages,".")-1);
set @intPages=cast(@strPages as char)+1;
end if;
end if;

/*分页操作*/
if filedsNames=''||filedsNames=null THEN
set filedlist='*';
else
set filedlist=filedsNames;
end if;

if strWhere=''||strWhere=null then
if sortName=''||sortName=null then
set @strSQL=concat('SELECT ',filedlist,',',@counts,' as totalRecord ,',@intPages,' as totalPage FROM 
',tableName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
else
set @strSQL=concat('SELECT ',filedlist,',',@counts,' as totalRecord ,',@intPages,' as totalPage FROM 
',tableName,' ORDER BY ',sortName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
end if;
else
if sortName=''||sortName=null then
set @strSQL=concat('SELECT ',filedlist,',',@counts,' as totalRecord ,',@intPages,' as totalPage FROM 
',tableName,' WHERE ',strWhere,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
else
set @strSQL=concat('SELECT ',filedlist,',',@counts,' as totalRecord ,',@intPages,' as totalPage FROM 
',tableName,' WHERE ',strWhere,' ORDER BY ',sortName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
end if;
end if;
PREPARE stmt_strSQL FROM @strSQL;
EXECUTE stmt_strSQL;
DEALLOCATE PREPARE stmt_strSQL;
END --------------------编程问答-------------------- limit关键字 --------------------编程问答-------------------- select * from goods where 条件 limit 从第几条开始,每页多少条记录 --------------------编程问答--------------------
引用 4 楼 xiaof0535 的回复:
给你个MYSQL的分页过程,记得把分给我,呵呵

BEGIN
/*
**************过程简介**************
MYSQL5.0通用分页存储过程
作者:xiaof
日期:2009-03-08,妇女节完成哒,嘿嘿^^V
说明:该过程实现了分页功能。支持where条件及order排序,但不支持group分组及多表级联查询

由于MYS……



感觉复杂了点呢!! --------------------编程问答-------------------- select * from xxx limit 0,10; --------------------编程问答--------------------
引用 6 楼 tzw1992 的回复:
select * from goods where 条件 limit 从第几条开始,每页多少条记录

select * from goods where 条件 limit 这里应该是从n-1条开始吧(n代表第几条),每页多少条记录 --------------------编程问答--------------------
引用 2 楼 yao442000 的回复:
呵呵,mysql是专门有分页的sql语法的,我举个例子。。。select * from user limit 0,5;这样就可以了,0是指从哪一条数据开始,5就是读取多少条数据。

+1  完全正确。这样只要你每页的显示数确定了,然后你确定一下你每一页都是从第几条记录开始就行了。 --------------------编程问答-------------------- 分页,是jsp基础 --------------------编程问答-------------------- limit m,n(m,n从m页到n页) --------------------编程问答-------------------- 哎,楼主你度娘都不用啊!google也有啊! --------------------编程问答-------------------- 除
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,