0

可能重复:
MySQL 在 ORDER BY 中获取行位置

我有一个用户表,我想按名为 Crown 的列对它们进行排序。然后我想找出它们在列表中的位置,但不完全确定如何去做。我试过用谷歌搜索它,但不完全确定要输入什么。(Crown 有 INT 输入。)

所以我有第一行:

mysql_query("SELECT * FROM users ORDER by crown DESC");

然后,在按皇冠订购时,我如何找出用户在列表中的位置?

提前致谢。

4

1 回答 1

0

我会做这样的事情,假设你可以得到用户的皇冠价值。

SELECT `user_var_you_want`,
       (SELECT COUNT(*) FROM `users` WHERE `crown` > $user_crown_value)+1 AS `position`
FROM `users`
WHERE `user_var_you_want` = $search_value

或者,如果您无法获得他们的皇冠价值:

SELECT `user_var_you_want`,
       (SELECT COUNT(*) FROM `users` WHERE `crown` > (SELECT `crown` from `users` WHERE `user_var_you_want` = $search_value)+1) AS `position`
FROM `users`
WHERE `user_var_you_want` = $search_value
于 2012-10-07T13:32:03.580 回答