怎么用HQL语句查询mysql中的最后N条记录

时间:2021-07-01 23:24:17
怎么用HQL语句查询mysql中的最后N条记录,主键自增,最后要求降序输出

10 个解决方案

#1


  分布不是有一个函数吗?你用那个函数就可以 查询了。

#2


该回复于2010-02-08 10:04:47被版主删除

#3


hql不会就用sql
createSQLQuery

#4


引用楼主 ouyangguaju0017 的回复:
怎么用HQL语句查询mysql中的最后N条记录,主键自增,最后要求降序输出


可以具体点吗

#5


引用 1 楼 greatmind829 的回复:
  分布不是有一个函数吗?你用那个函数就可以 查询了。


哪个分布函数啊?

#6


引用 5 楼 ouyangguaju0017 的回复:
引用 1 楼 greatmind829 的回复:
  分布不是有一个函数吗?你用那个函数就可以 查询了。


哪个分布函数啊?


正常用法么..排序倒序 然后调用setMaxResults吧 设置下查询出来的最大记录数就可以了..

#7


你先升序排列取得前N条记录 再将这N条记录降序排列不就是你要的结果吗

#8


引用 5 楼 ouyangguaju0017 的回复:
引用 1 楼 greatmind829 的回复:
  分布不是有一个函数吗?你用那个函数就可以 查询了。


哪个分布函数啊?


我是这么做的,可是不行,你看看有什么问题
private static final String QUERYPERPAGEHQL = "from Solution solution order by solutionId desc";

public List queryPerPage(int page) {
List<Solution> listResult = new ArrayList<Solution>();
Session session = HibernateSessionFactory.getSession();
int startRow = this.getTotalCount()-page*countPerPage;
Query query = session.createQuery(this.QUERYPERPAGEHQL);
query.setFirstResult(startRow);
query.setMaxResults(countPerPage);
listResult = query.list();
return listResult;
}

#9


引用 7 楼 colin_pxx 的回复:
你先升序排列取得前N条记录 再将这N条记录降序排列不就是你要的结果吗


你说的没错,我现在是这么做的,我就是想知道有没有办法不这么做,毕竟这要花费额外的时间

#10


select  ...  where id> (max(id)-N)

你看这样O 不

#1


  分布不是有一个函数吗?你用那个函数就可以 查询了。

#2


该回复于2010-02-08 10:04:47被版主删除

#3


hql不会就用sql
createSQLQuery

#4


引用楼主 ouyangguaju0017 的回复:
怎么用HQL语句查询mysql中的最后N条记录,主键自增,最后要求降序输出


可以具体点吗

#5


引用 1 楼 greatmind829 的回复:
  分布不是有一个函数吗?你用那个函数就可以 查询了。


哪个分布函数啊?

#6


引用 5 楼 ouyangguaju0017 的回复:
引用 1 楼 greatmind829 的回复:
  分布不是有一个函数吗?你用那个函数就可以 查询了。


哪个分布函数啊?


正常用法么..排序倒序 然后调用setMaxResults吧 设置下查询出来的最大记录数就可以了..

#7


你先升序排列取得前N条记录 再将这N条记录降序排列不就是你要的结果吗

#8


引用 5 楼 ouyangguaju0017 的回复:
引用 1 楼 greatmind829 的回复:
  分布不是有一个函数吗?你用那个函数就可以 查询了。


哪个分布函数啊?


我是这么做的,可是不行,你看看有什么问题
private static final String QUERYPERPAGEHQL = "from Solution solution order by solutionId desc";

public List queryPerPage(int page) {
List<Solution> listResult = new ArrayList<Solution>();
Session session = HibernateSessionFactory.getSession();
int startRow = this.getTotalCount()-page*countPerPage;
Query query = session.createQuery(this.QUERYPERPAGEHQL);
query.setFirstResult(startRow);
query.setMaxResults(countPerPage);
listResult = query.list();
return listResult;
}

#9


引用 7 楼 colin_pxx 的回复:
你先升序排列取得前N条记录 再将这N条记录降序排列不就是你要的结果吗


你说的没错,我现在是这么做的,我就是想知道有没有办法不这么做,毕竟这要花费额外的时间

#10


select  ...  where id> (max(id)-N)

你看这样O 不