日期:2014-05-19  浏览次数:20663 次

mysql查最后几条数据问题
后台使用了hibernate
String Hql = "from Blog order by blogid desc limit 10"; //这一语句为什么查出了所有行数据???
Query q = session.createQuery(Hql);

在mysql里敲:select * from blog order by blogid desc limit 10 //这个就查出了最后10条数据


问题:HQL语句怎样写才能查出了最后10条数据呢???数据库是mysql

------解决方案--------------------
Query qy=session.createQuery("from Blog as b order by b.blogid asc"); 

用了asc然后分页查询取前10
这样的列子很多我搜了个----
Hibernate 可以实现分页查询,例如:
  从第2万条开始取出100条记录
  
  Query q = session.createQuery("from Cat as c");
  q.setFirstResult(20000);
  q.setMaxResults(100);
------解决方案--------------------
用order by 显然是不好,你order by的是整个表的记录,这个是不可取的吧。order by 依我看用在where 之后还说的过去。
我想先得到记录的总条数totalRecord,这个不是太费,也有点不咋滴。
  q.setFirstResult(totalRecord-10); 
  q.setMaxResults(10);