gpt4 book ai didi

mysql - 为什么 mysql 查询返回错误的结果?

转载 作者:行者123 更新时间:2023-11-29 04:51:46 25 4
gpt4 key购买 nike

我正在尝试在我的 MySQL 数据库中查找最新的日志条目。我昨晚深夜编造了这个查询,但在今天测试时它似乎没有返回正确的数据。

SELECT MAX(id), hostName, email, info, time 
FROM log
WHERE time >= DATE_SUB(NOW(), INTERVAL 1 HOUR)
GROUP BY hostName
ORDER BY `time` DESC

查询运行得很好,但似乎没有其他字段与 id 列匹配。它获取了最大 ID 号,但主机名、电子邮件和信息与 ID 不匹配,并且它们不是最新的。我花了几个小时来研究这个(我是一个 MySQL 菜鸟,只是为了好玩)所以我现在很困惑..

感谢您的帮助!

编辑:哇,谢谢大家的回复!抱歉造成混淆,我应该说“我想要每个主机名的最新日志!” <- 这正是我所需要的。

最佳答案

你说:

I am attempting to find the latest log entries in my MySQL database

不需要分组,也不需要使用子查询。试试这个:

SELECT id, hostName, email, info, time FROM log
WHERE time >= DATE_SUB(NOW(), INTERVAL 1 HOUR)
ORDER BY `time` DESC

现在你说:

I want the latest log per hostname!

那么解决方案应该是这样的:

SELECT l1.id, l1.hostName, l1.email, l1.info, l1.time FROM log l1
LEFT JOIN log l2 on l1.hostName = l2.hostName AND l1.time < l2.time
WHERE l2.time IS NULL
ORDER BY l1.time DESC

关于mysql - 为什么 mysql 查询返回错误的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11051675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com