日期:2014-05-17  浏览次数:20706 次

jsp 中 查询mysql 的一个小问题
我用jsp做一个聊天系统,现数据库中有一个message表,主键是id ,另一个content,存聊天内容的,

 在 jsp 中用这条sql语句 select * from message order by id desc limit 0,10 查询当前最后10条语句并输出来,

结果......从上到下是逆序输出的,我现在要实现正续输出最后10条记录应该怎么做?你们有什么好的方法,求解..

------解决方案--------------------
楼上两位,看清楚再答。
通过desc倒排实现,但最终的结果集也是倒排的

要使desc倒排后,结果集依然能够哦asc升序排列,我们可以借助数据库子表查询实现

即在子表的查询条件中,重新把desc结果进行asc排列

示例:

select * from (select top, id, dtime from gametop800 where top=1 order by dtimedesclimit 0, 10) as tbl order by dtime asc;
------解决方案--------------------
select * from (select * from message order by id desc limit 0,10) t order by t.id asc
------解决方案--------------------
哦。没看清,LZ说的最后10条,怎么还是使用limit 0,10呢?有点疑惑,
如果需要查询最后10条而且需要正序的话,就直接这样:
select * from message where id in(select m.id from (select * from message order by id desc limit 10) as m) order by id asc