JAva mysqlランキング
3521 ワード
/**
* 50
*/
public List<User> rank() {
String sql = "select rank,id,bonus_point,nickname,avatar,state from(" +
"select tmp.id,tmp.bonus_point,tmp.nickname,tmp.avatar,tmp.state,@rank:=@rank+1 AS rank from(" +
"select id,bonus_point,nickname,avatar,state from u_user order by bonus_point DESC" +
") tmp,(SELECT @rank:=0)a" +
")result where state=0 order by rank asc limit 50;";
List<User> list = User.dao.find(sql);
return list;
}
1.mysqlのrankを使用可能
2.テンポラリ・テーブルの利用
3.必要なフィールドはすべて追加する
4.最外層にwhere条件フィルタがある場合は、並べ替えを変更します.そうしないと、順序が狂ってしまいます.