项目有个需求要获取用户销售额的排名,于是在 mysql 实现,但是当销售额都等于 0 的时候,排序是很不稳定的,每次获取都不一样,有什么好的解决方法呢
SELECT
pos AS sort,
amount,
user_id AS userId
FROM
(
SELECT
rank.*,@rank :=@rank + 1 AS pos
FROM
(
SELECT
user_id,
sale_amount amount
FROM
store
UNION
SELECT
user_id,
amount
FROM
store_rank
ORDER BY
amount DESC
) rank,
(SELECT @rank := 0) B
) c
WHERE
user_id = 1015228275321995264 ;