php - Mysql 查询 vs php 查询给了我错误的结果
问题描述
我有一个包含超过 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查询结果
有 143 条记录。
但是当我使用相同的查询执行 PHP 代码时,结果会有所不同,有 174 条记录 (??)。 用 PHP 查询
第一条记录具有下一个值:89.248.174.171, 14160
2365 对 14160 !!??
第二个结果就OK了。但是……接下来的结果也不一样!!
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);
函数查询:
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;
}
解决方案
只需在 PHP 中使用 AS 定义一个 COUNT
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
推荐阅读
- flutter - 你如何使颤振滑块在拇指的每一侧跟踪相同的高度?
- android - 如何在多模块、单个活动、仅 Compose 项目中显示来自 Composables 或 ViewModels 的小吃栏
- scroll - Nuxt JS中的路由更改时页面不滚动到顶部
- swift - Swift:如何将“完成”包装到异步/等待中?
- ios - 动态更改设计元素颜色
- python - 使 Python 类变量遵循分配给它的对象的值
- macos - Terraform:MacOS:zsh:执行格式错误:terraform
- android - 如何在颤动的浮动操作按钮中添加whatsapp图像
- typescript - 错误“无法调用可能未定义的对象”
- javascript - Jsreport css 不适用于 Linux-CentOS。解决此问题的任何方法