怎样用HQL语句查询出点击率前十的记录?(数据库是mysql,表名Answer ,点击率clickcount)

解决方案 »

  1.   

    select * from Answer order by clickcount  desc  limit 0,10 ;
      

  2.   

    抱歉呀,忘了hql,把上面的改改就可以吧
      

  3.   

    我改成了 from Answer order by clickcount  desc  limit 0,10 ;可是查出来的是全部的记录为什么啊?是什么地方错了吗?
      

  4.   

    String hql = "from Answer order by clickcount desc";Query query = session.createQuery(hql);query.setFirstResult(0);
    query.setMaxResult(10);List list = query.list();
      

  5.   

    我是新手!前两天才接触HQL,刚做了个分页,感觉可以用这个思路做吧!就是太笨!
    先查询所有的记录,然后分个10条进来!
    String hql="from Answer order by clickcount  desc";
    Query query=session.createQuery(hql);
    query.setFirstResult(0);
    query.setMaxResults(10);
    return query.list();
    这只是一种思路,别见笑啊!
      

  6.   

    String hql = "from Answer a order by a.clickcount desc";Query query = session.createQuery(hql);query.setFirstResult(0);
    query.setMaxResult(10);List list = query.list();这样看起来舒服些,呵呵。。一般都是采用分页的方法来获取前几条数据
      

  7.   

    select top 10 clickcount from Anwer where 自动增加列名ID desc
      

  8.   

    分页SQL语句select top 一页显示条数 * from 表名 where  ID(自动增加列) 
    not in(select top (页数量-1)一页显示条数  ID(自动增加列)  from 表名 where ID(自动增加列)  desc  ) and  ID(自动增加列) desc 例:
       查找前十条最新新闻   第一页
         select top 10 * from newInfo where newID not in (select top 10 newID from newInfo newID desc ) and newID desc  第二页select top 10 * from newInfo where newID not in (select top (2-1)*10  newID from newInfo newID desc ) and newID desc   
      

  9.   

    使用本地化的SQL语句,可以达到一样的效果
    Query query = session.createSQLQuery(" select top 10 * from newInfo where newID not in (select top 10 newID from newInfo newID desc ) and newID desc "); //用本地sql可以不
      

  10.   

    from Answer order by Answer.clickcount  desc  limit 0,10试试!
      

  11.   

    我的数据库是mysql,没有top关键字!
      

  12.   

    Java codeString hql="from Answer order by clickcount desc";
    Query query=session.createQuery(hql);
    query.setFirstResult(0);
    query.setMaxResult(10);
    List list=query.list();无意中,发现一个重大问题
    setMaxResult少了个s也
    应该是setMaxResults
    应该改成这样Java codeString hql="from Answer a order by a.clickcount desc";
    Query query=session.createQuery(hql);
    query.setFirstResult(0);
    query.setMaxResults(10);
    List list=query.list();
      

  13.   

    4,5楼不正解,QUERY.setMaxResults()
    就是用的 limit 实现的,这里不能用具体的关键字,
    这样也是方便数据库移植
      

  14.   

    HQL里面到底可不可以用limit?
      

  15.   

    HQL好像不支持limit,limit在SqlServer中好像可以用,但是oracle中没有,
    而hibernate是通过配置文件就可以配置不同数据库,所以通用性的东西都会有,
    hibernate中内置执行sql的方法,具体是哪个忘了,google一下应该就可以找到,
    实在不行就可以自己写sql,1年前用过hibernate,记得是这样的。
      

  16.   

    Hql中没有limit这一写法,只有mySql中才能这样写HQL语句中存在的东西有普通JavaBean类名,JavaBean属性,例如from JavaBean类名 as 别名  where 别名.JavaBean属性=?
    Query query=session.createQuery(hql); 
    query.setFirstResult(0); 
    query.setMaxResult(10); 
    List list=query.list(); 就是这种来控制结果数量
      

  17.   

    limit 只能在MYSQL中用于分页!