Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 排序查询在mysql中工作不正常_Php_Mysql_Ranking - Fatal编程技术网

Php 排序查询在mysql中工作不正常

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投票; 所以问题是排名是通过投票而

我有一个查询,它试图根据每个用户获得的正面投票总数进行排名。问题是排名是由用户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;

很抱歉,我无法发布表结构。我没有足够的声誉,你可以发短信。。因为没有表格结构很难知道你想做什么。我不知道没有表格描述你是怎么想出来的,但是它工作得很好。