我有一个拥有超过110,000条记录的访问日志数据库。
我在控制台上运行下一个查询:
SELECT COUNT(`remote_host`), `remote_host` FROM `access_log`
GROUP BY `remote_host` HAVING COUNT(`remote_host`) > 99
ORDER BY COUNT(`remote_host`) DESC
我有那个结果。 Mysql query result
有143条记录。
但是当我使用相同的查询执行PHP代码时,结果与174条记录(??)有所不同。 Query with PHP
第一个记录的下一个值是:89.248.174.171,14160
2365和14160 !! ??
第二个结果没问题。 但是...所有下一个结果也是不同的!!
简单的PHP代码:
$q_1 = "SELECT COUNT(`remote_host`), `remote_host` FROM `access_log` GROUP BY `remote_host` HAVING COUNT(`remote_host`) > 99 ORDER BY COUNT(`remote_host`) DESC ;";
$aItems = doQuery($con, $q_1);
echo count($aItems)."<br/>";
var_dump($aItems);
函数doQuery:
function doQuery($con, $query) {
$result = mysqli_query($con, $query);
$arr = array();
if ($result) {
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
$arr[] = $row;
mysqli_free_result($result);
}
return $arr;
}
答案 0 :(得分:0)
只需在PHP中使用AS定义一个计数
SELECT COUNT(`remote_host`) AS RHOST, `remote_host` FROM `access_log`
GROUP BY `remote_host` HAVING COUNT(`remote_host`) > 99
ORDER BY COUNT(`remote_host`) DESC