我有一个表(本质上)有3列-名称,投票和排名。我想通过投票排序表,然后更新“rank”以反映此顺序,这样得票最多的表的rank将设置为1,得票次多的表的rank将设置为2等。
我可以在PHP中完成这项工作,但这似乎非常浪费——有没有一种方法可以在一个SQL查询中完成这项工作,而不必手动处理PHP中的每个记录?
最佳答案
假设您不关心关系,您可以在查询中动态计算排名,而不是存储排名。
SET @rank=0;
SELECT @rank:=@rank+1 AS rank, name, votes
FROM yourTable
ORDER BY votes DESC;
关于php - 在MySQL表上创建数字顺序索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2585567/