Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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_Sql_Count_Sql Order By - Fatal编程技术网

Php 如何使用计数和比率对MySQL查询进行排序

Php 如何使用计数和比率对MySQL查询进行排序,php,mysql,sql,count,sql-order-by,Php,Mysql,Sql,Count,Sql Order By,我在使用计数和比率排序MySQL查询时遇到了问题 这是我目前正在使用的代码 $getKillers = mysql_query("SELECT `killer`, `killed`, count(`killer`), count(`killed`) FROM `kills` GROUP BY `killer` ORDER BY count(`killer`) / count(`killed`) DESC LIMIT {$limit}"); 这是我正在使用的数据库结构 CREATE TABLE

我在使用计数和比率排序MySQL查询时遇到了问题

这是我目前正在使用的代码

$getKillers = mysql_query("SELECT `killer`, `killed`, count(`killer`), count(`killed`) FROM `kills` GROUP BY `killer`  ORDER BY count(`killer`) / count(`killed`) DESC LIMIT {$limit}");
这是我正在使用的数据库结构

CREATE TABLE `kills` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `killer` varchar(20) NOT NULL COMMENT 'The player who scored the kill',
  `killed` varchar(20) NOT NULL COMMENT 'The player who was killed',
  PRIMARY KEY (`id`),
  KEY `killer` (`killer`,`killed`)
) ENGINE=InnoDB AUTO_INCREMENT=680633 DEFAULT CHARSET=utf8 COMMENT='PVP Log';

-- ----------------------------
-- Records of kills
-- ----------------------------
INSERT INTO `kills` VALUES ('1', 'Player1', 'Player2');
INSERT INTO `kills` VALUES ('2', 'Player1', 'Player3');
INSERT INTO `kills` VALUES ('3', 'Player2', 'Player3');
INSERT INTO `kills` VALUES ('4', 'Player2', 'Player1');
INSERT INTO `kills` VALUES ('5', 'Player1', 'Player2');
INSERT INTO `kills` VALUES ('6', 'Player3', 'Player3');
INSERT INTO `kills` VALUES ('7', 'Player2', 'Player3');
INSERT INTO `kills` VALUES ('8', 'Player3', 'Player1');
我希望这个SQL使用PHP中的mysql_fetch_数组来显示顶级PVP,KDR(Kill-death ratio)是killer-over-killed。这是他们杀害某人的次数超过他们被杀害的次数

谢谢你的帮助

尝试此查询:

SELECT * , (SELECT COUNT( 1 ) 
            FROM kills b
            WHERE nested.killer = b.killed
           ) AS killed_cnt
FROM (    
   SELECT  `killer` , COUNT(  `killer` ) AS kill_cnt
   FROM  `kills` a
   GROUP BY  `killer`
) nested
ORDER BY kill_cnt / killed_cnt DESC 
LIMIT 10
请尝试以下查询:

SELECT * , (SELECT COUNT( 1 ) 
            FROM kills b
            WHERE nested.killer = b.killed
           ) AS killed_cnt
FROM (    
   SELECT  `killer` , COUNT(  `killer` ) AS kill_cnt
   FROM  `kills` a
   GROUP BY  `killer`
) nested
ORDER BY kill_cnt / killed_cnt DESC 
LIMIT 10

那么输出结果是什么呢?PVP意味着玩家对玩家?检查KDR这是否是你想要的。我想按KDR排序,所以顶级PVP玩家在顶部。目前输出是随机的KDR。那么输出是什么呢?PVP是指玩家对玩家?检查KDR这是否是你想要的。我想按KDR排序,所以顶级PVP玩家在顶部。输出是当前的随机KDR。抱歉,您的查询使网页显示“Internal Server Error 500”,我在phpmyadmin中检查了它-一切正常,如果您有“Internal Server Error 500”,请检查您的php错误日志,并检查您的php文件语法(php-l your_file.php)抱歉,您的查询使网页显示“Internal Server Error 500”我在phpmyadmin中检查了它-一切正常,如果您有“Internal Server Error 500”,请检查您的php错误日志,并检查您的php文件语法(php-l your_file.php)