有几个类似的问题,但我会把这个混为一谈。
基本上,我有一个时间戳列(这是一个int),而我的更新之一只是更新这个时间戳列,有时这是一个几乎不明显的距离。例如,它可能从1316631442更改为1316631877。两者之间并没有太大的区别。
因此,记录正在更新,我可以在查询运行之前和之后签入phpMyAdmin,然后查看差异。但是,我正在对受影响的行计数执行一个var_dump(),它仍然是0。
如果同时将另一列更新为不同的值,则受影响的行为1。
那么,如何才能触发受影响的行呢?即使它受到影响,因为更新是成功的。
此外,我还使用了Laravel框架及其查询生成器。目前正在做一些调试,看看是否有什么事情可能是错的,但到目前为止,一切似乎都很好。
编辑:对不起,我把上面的东西打错了。当我完全更改另一列的值时,受影响的行是1,而不是0。
发布于 2011-09-22 16:16:59
对于那些好奇的人,我求助于使用插入..。对重复键进行更新,以达到预期的结果。我仍然不明白为什么MySQL没有报告这一记录受到影响。
我还尝试使用PHP、mysql_query()和相关函数来检查受影响的行,但它也不是那样工作的。也许MySQL认为这种改变不值得将记录标记为受影响的。
发布于 2017-02-16 09:00:09
我可以用MySql 5.1复制这个问题,但不能用MySQL5.7。
在早期版本中
UPDATE `test`
SET
`time` = TIMESTAMPADD(MINUTE, 10, NOW())
WHERE
`id = 1更新时间戳,但消息是零行已受到影响。
对于更高版本的MySql,相同的查询会给出一行受影响的结果。
这似乎是一个已经修复的MySql错误。
是时候让服务器管理员来更新一些东西了?
https://stackoverflow.com/questions/7505271
复制相似问题