MySql 查询有时返回 null

MySql 查询有时返回 null

我不确定到底是什么原因造成的,但有时我知道必须返回结果的 mysql 查询有时会返回 null。我之前已经看到过两次这种情况,但由于我在错误日志中找不到任何内容,所以我更新了所有内容,并假设现在应该没问题了,但我最近又看到同样的错误发生了。为什么 Mysql 会返回 null,即使查询应该返回实际值?目前我有点不知所措,我最好的猜测可能是数据损坏?在 Google 上找不到太多关于这个问题的信息,所以我决定在为我的计算机购买新硬盘之前寻求建议。如果您能就这个问题提供任何见解,我将不胜感激,谢谢!

答案1

抱歉,这是一个答案,我的声誉不够高,无法发表评论。

如果您的疑问没有更多详细信息,将很难给出答案。

如果查询像“从表中选择*”这样简单,那么获取随机空值就会很奇怪。

如果您的查询使用某种 where 子句,则可能是您的查询随机使用了错误的值。您应该尝试捕获空响应并记录您刚刚尝试运行的查询。

答案2

最好的办法是启用常规查询日志,然后在收到意外的 NULL 结果时检查查询日志和错误日志。要启用常规日志,请在 的 [mysqld] 部分中设置此项my.cnf

general_log_file = /path/to/query.log
general_log      = 1

请记住,与 binlog 不同,全部查询会被写入通用日志,即使是 SELECT 查询,因此日志会占用大量空间。因此,如果您这样做,请密切关注。

此外,检查输出中dmesg是否存在任何与文件系统相关的错误。

答案3

好的,我已经解决了这个问题。Mysql 不是我最初怀疑的问题。执行的 php 脚本返回一个 xml 文件,我使用 Firefox 运行通过 ajax 请求执行此脚本的 Web 应用程序。事实证明,Firefox 似乎有一个错误,它在处理 xml 文件时会发送多个 ajax 请求,这导致数据库更新,然后当第二个请求到来时结果为空(更新将使查询的结果呈现为空)。我已通过确保每个请求都是唯一的来解决这个问题。

谢谢大家的帮助!

相关内容