MySql查询在ocassions上返回null

我不确定究竟是什么造成了这种情况,但偶尔有一个我知道必须返回结果的mysql查询有时会返回null。 我以前见过这种情况,但由于我在错误日志中找不到任何东西,我只是更新了一切,只是假定现在应该可以,但是最近我又看到了同样的错误。 是否有任何理由为什么Mysql会返回null作为结果即使查询应返回实际值? 目前我有点难倒,我最好的猜测可能是数据损坏? 在谷歌上找不到这个问题,所以我决定在为我的电脑购买新硬盘之前征求build议。 任何洞察力,你可以给我这个问题将不胜感激,谢谢!

对不起,张贴这是一个答案,我的声望是不够高,发表评论。

没有更多关于你的查询的细节,将很难给出答案。

如果查询是“select * from table”这样简单的事情,那么得到随机的空值将会很奇怪。

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

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

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

请记住,与二进制日志不同的是, 所有的查询都被写入通用日志,甚至是SELECT查询,所以日志会占用大量的空间。 所以,如果你这样做,留意事情。

另外,检查dmesg的输出是否与文件系统有关的错误。

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

感谢大家的帮助!