0

数据库架构

----------------------------------------------------------
| id | killed | killed_by | killed_uuid | killed_by_uuid |
----------------------------------------------------------

killedkilled_by持有实体类型。例如。“玩家”、“环境”、“生物”。没有细节。

killed_uuidkilled_by_uuid如果玩家参与杀戮,则是用户 ID。

该表包含在我的游戏服务器上发生的杀戮。每次击杀都存储在单独的行中,因此没有每个玩家的总数。

我想为每个用户 ID 创建总数并从中创建一个排行榜。所以基本上,计算每个单独的 UserID 的行数。

我试过使用

select killed_by_uuid, count(id)
from kills
where killed='999' AND killed_by='999'
group by killed_by_uuid
order by count(id) desc

999是属于玩家实体的 ID,而不是实际的 USERID。但我得到的只是一个结果集:

Array
(
    [0] => c676680f-98cb-4893-b1ba-ab5ab59fc272
    [killed_by_uuid] => c676680f-98cb-4893-b1ba-ab5ab59fc272
    [1] => 15
    [count(id)] => 15
)
4

2 回答 2

5
select killer, count(killer) as total_kills
from kills
where killed='player' and killed_by not in (<list of environment ids>)
group by killer
order by total_kills desc, killer
于 2011-07-16T22:05:21.983 回答
0
SELECT COUNT(*) FROM KILLS WHERE KILLED=? AND KILLED_BY NOT IN (?, ?, ?, ?, ?, ...)
于 2011-07-16T11:32:28.403 回答