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 )tmp
Sql: 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()
);
}