mysql 查询排行_通过mysql查询排行榜

1、个人所在排行sql(单表简单排名)

SELECT

m.rank ,

m.user_id ,

m.weight

FROM

(

SELECT

(@i :=@i + 1) rank ,

user_id ,

weight

FROM

t_pig_user ,

(SELECT @i := 0) AS it

ORDER BY

weight DESC ,

insert_time ASC

) m

WHERE

m.user_id = 444

2、排行榜前99名(单表简单排名)

SELECT

(@i :=@i + 1) rank ,

user_id ,

weight

FROM

t_pig_user ,

(SELECT @i := 0) AS it

ORDER BY

weight DESC ,

insert_time ASC

LIMIT 99

3、复杂个人排名

SELECT

n.rank ,

u.uid ,

n.user_id ,

n.stepsToall ,

n.today_praise AS praise ,

u.NICK_NAME ,

u.USER_PIC_PATH

FROM

(

SELECT

m.rank ,

m.user_id ,

m.steps + m.prop_steps AS stepsToall ,

m.today_praise

FROM

(

SELECT

(@i :=@i + 1) rank ,

user_id ,

steps ,

prop_steps ,

today_praise

FROM

t_walk_user_step_today ,

(SELECT @i := 0) AS it

WHERE

today_date = #{todayTime}

ORDER BY

steps + prop_steps DESC ,

user_id ASC

) m

WHERE

m.user_id = #{userId}

) n

LEFT JOIN t_user u ON u.USER_ID = n.user_id

4、复杂排行

SELECT

m.rank ,

u.uid ,

m.user_id ,

m.stepsToall ,

u.NICK_NAME ,

u.USER_PIC_PATH ,

m.today_praise AS praise

FROM

(

SELECT

(@i :=@i + 1) rank ,

user_id ,

steps + prop_steps AS stepsToall ,

today_praise

FROM

t_walk_user_step_today ,

(SELECT @i := 0) AS it

WHERE

today_date = #{todayTime}

AND steps + prop_steps > 0

ORDER BY

steps + prop_steps DESC ,

user_id ASC

LIMIT 99

) m

LEFT JOIN t_user u ON u.USER_ID = m.user_id

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值