我正在尝试按值对数据库中的所有用户进行排序,并为他们提供一个新的 ID,这将充当他们的位置。
我尝试按 money
降序排列它们,这是我正在寻找的排序依据的值,但我无法按顺序正确更新每个用户的 ID。
请注意,数据库有超过 5000 个条目,因此我需要一种不会滞后于数据库的方法。
最佳答案
不幸的是,MySQL 没有一个很好用的简单的 RANK()
函数。您可以使用此处描述的解决方法:Rank function in MySQL
SELECT t1.*, @curRank := @curRank + 1 AS rank
FROM table_name t1, (
SELECT @curRank := 0
) t2
ORDER BY money
关于mysql - 如何: Sort user by values and theier new position in the table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53989284/