jfinal page sql 查询

来源:互联网 发布:雅马哈ts软件 编辑:程序博客网 时间:2024/06/06 08:48
Sql: select * from `b_essay` where `essay_id` = ?Sql: select count(*)  FROM ( SELECT DATE_FORMAT(vote_time,'%Y-%m-%d') days , count(id) count FROM h_vote where 1 = 1  and activity_id = 119 and option_id = 1 group by days  )tmpSql:  select *   FROM ( SELECT DATE_FORMAT(vote_time,'%Y-%m-%d') days , count(id) count FROM h_vote where 1 = 1  and activity_id = 119 and option_id = 1 group by days  )tmp limit 0, 10


分页会先走一遍 select count(*) ...

往往这个时候就各种问题


解决:

就是先将表查一遍,然后在外面套一层select,这样一般没问题


 public Page<History> getList(int pageNum, int pageSize, String eid, Integer aid){        String sql = " FROM ( SELECT DATE_FORMAT(vote_time,'%Y-%m-%d') days , count(id) count FROM vote where 1 = 1 ";        StringBuilder sb = new StringBuilder(sql);        if(aid !=null){            sb.append(" and aid = ");            sb.append(activityId);        }        if(StrKit.notBlank(eid)){            sb.append(" and option_id = ");            sb.append(essayId);            sb.append(" group by days ");        }        sb.append(" )tmp");        return dao.paginate(                pageNum,                pageSize,                " select * ",                sb.toString()        );    }