Php 排序查询在mysql中工作不正常
我有一个查询,它试图根据每个用户获得的正面投票总数进行排名。问题是排名是由用户ID而不是投票决定的。问题是因为GROUP BY,但我必须使用它,因为一个id多次出现在id部分 我想知道你是否有一些解决办法 选择 a、 投票表决, 选择 国家 从…起 用户以b的身份投票 哪里 b、 州=1和b。投票表决id=a。投票表决id作为投票, @排名:=@rank+1作为用户投票的排名, 选择@rank:=0作为秩 哪里 a、 状态=1 分组 a、 投票人 订购人 asc投票;Php 排序查询在mysql中工作不正常,php,mysql,ranking,Php,Mysql,Ranking,我有一个查询,它试图根据每个用户获得的正面投票总数进行排名。问题是排名是由用户ID而不是投票决定的。问题是因为GROUP BY,但我必须使用它,因为一个id多次出现在id部分 我想知道你是否有一些解决办法 选择 a、 投票表决, 选择 国家 从…起 用户以b的身份投票 哪里 b、 州=1和b。投票表决id=a。投票表决id作为投票, @排名:=@rank+1作为用户投票的排名, 选择@rank:=0作为秩 哪里 a、 状态=1 分组 a、 投票人 订购人 asc投票; 所以问题是排名是通过投票而
所以问题是排名是通过投票而不是投票来完成的。这有什么好处?如果没有DDL和一些示例数据,就很难看到您的情况
select voted_id,
votes,
@rank:=@rank + 1 as rank
from
(
select voted_id,count(*) as votes
from user_vote
where state=1
group by voted_id
order by votes desc
) t
join (select @rank:=0) r;
很抱歉,我无法发布表结构。我没有足够的声誉,你可以发短信。。因为没有表格结构很难知道你想做什么。我不知道没有表格描述你是怎么想出来的,但是它工作得很好。