有一种非常常见的需求,将用户按照发帖的多少,设定站内的名次。这个通常是用后台的batch来实现。
不过如何用一条语句就能实现呢。不妨试试下面的方法
SET @rank = 0;
UPDATE user_mst
JOIN
( SELECT @rank := @rank + 1 AS rank, user_mst.user_id
FROM user_mst
ORDER BY post_num desc) rank_user
ON user_mst.user_id = rank_user.user_id
SET user_mst.p_rank = rank