Php MySQL:将列中的记录数限制为5个唯一值
我正在尝试创建一个排行榜,根据一个游戏中的杀戮次数,它显示排名前五的玩家,杀戮次数相同的人处于同一排名 如何将所有记录升级到第5级?如何定位所有记录,直到列中最多有5个唯一值 我希望这是有道理的 查询还需要考虑地图。例如:其中map='map\u name' 例如: 表:Php MySQL:将列中的记录数限制为5个唯一值,php,mysql,sql,unique,limit,Php,Mysql,Sql,Unique,Limit,我正在尝试创建一个排行榜,根据一个游戏中的杀戮次数,它显示排名前五的玩家,杀戮次数相同的人处于同一排名 如何将所有记录升级到第5级?如何定位所有记录,直到列中最多有5个唯一值 我希望这是有道理的 查询还需要考虑地图。例如:其中map='map\u name' 例如: 表: Name, Kills user1 - 30 user2 - 27 user3 - 54 user4 - 34 user5 - 34 user6 - 27 user7 - 22 user8 - 22 user9 - 31 us
Name, Kills
user1 - 30
user2 - 27
user3 - 54
user4 - 34
user5 - 34
user6 - 27
user7 - 22
user8 - 22
user9 - 31
user10 - 21
user11 - 27
结果需要排名前5位的所有玩家/记录:
1. user3 - 54
2. user4 - 34
user5 - 34
3. user9 - 31
4. user1 - 30
5. user2 - 27
user6 - 27
user11 - 27
尝试这样的查询:-
select * from table where Kills in
(select Kills from table group by Kills order by Kills desc limit 5)
尝试:
您可以使用以下变量:
选择姓名、死亡人数、等级
从…起
选择名称,杀死,
@等级:=如果@k=死亡,@rank,
如果@k:=杀死,@rank+1,@rank+1作为等级
从分数
交叉连接选择@k:=0,@rank:=0作为变量
按说明按t排序
其中t.rank您应该在输出中包含该秩。
SELECT *
FROM YourTable
WHERE Kills IN (SELECT DISTINCT Kills
FROM YourTable
ORDER BY Kills DESC
LIMIT 5)
ORDER BY Kills DESC
select kills, name from table where Kills in (select distinct Kills from table order by Kills desc limit 5)
SELECT s.Name, s.Kills FROM scores as s
INNER JOIN (SELECT DISTINCT Kills From scores ORDER BY Kills DESC LIMIT 5) as s1
ON s.Kills = s1.Kills
ORDER BY s.Kills DESC