JAva mysqlランキング


    /**
     *     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条件フィルタがある場合は、並べ替えを変更します.そうしないと、順序が狂ってしまいます.