php – 在给定用户名时,从无序的MySql数据库中获取基于分数的排
发布时间:2020-12-13 17:23:25 所属栏目:PHP教程 来源:网络整理
导读:好的,所以我有一张表有以下内容 KEY username password score 以上列没有任何特定顺序. 我想向我的数据库发送一个用户名,让它根据其得分将该用户名的等级发回给我.例如,如果我在那里有10个人,那么第3个人的得分最高.当我通过第三人的用户名时,我希望它发回1.
好的,所以我有一张表有以下内容
KEY username password score 以上列没有任何特定顺序. 我想向我的数据库发送一个用户名,让它根据其得分将该用户名的等级发回给我.例如,如果我在那里有10个人,那么第3个人的得分最高.当我通过第三人的用户名时,我希望它发回1. 这可能吗? 我一直在尝试这样的事情 $result = mysql_query("SELECT * FROM tablename where username='$username' ORDER BY score DESC"); 但它似乎没有给我行号 解决方法
这将处理具有相同分数的排名.
SELECT d.*,c.ranks FROM ( SELECT Score,@rank:=@rank+1 Ranks FROM ( SELECT DISTINCT Score FROM tableName a ORDER BY score DESC ) t,(SELECT @rank:= 0) r ) c INNER JOIN tableName d ON c.score = d.score // WHERE d.username = 'Helen' > SQLFiddle Demo (Ranking with duplicates) 例如 KEY username password score Ranks 1 Anna 123 5 3 2 Bobby 345 6 2 3 Helen 678 6 2 4 Jon 567 2 4 5 Arthur ddd 8 1 为了获得更好的性能,请在列分数上添加INDEX, ALTER TABLE tableName ADD INDEX (Score) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |