更新异常。 Mysql sql不同的行受影响计数

时间:2014-04-27 14:57:54

标签: mysql

SELECT * FROM `attempts` WHERE date = '27-04-2014' LIMIT 0 , 30

此特定查询提供 386结果(PHPmyAdmin)但执行以下查询

UPDATE `attempts` SET points = points *2 WHERE date = '27-04-2014'

我受到 379行影响。。难道我不能得到相同的号码吗?还有其他可能原因吗?或者我在某处错了?

2 个答案:

答案 0 :(得分:1)

查询不会影响points = 0的行,因为加倍点的值不会产生任何影响。

例如,尝试运行此查询:

UPDATE `attempts` SET points = points + 0 WHERE date = '27-04-2014'

它会显示 0行受影响

此外,phpMyAdmin is an estimate显示的计数,如果您使用的是InnoDB。使用COUNT(*)获取确切的计数。

SELECT COUNT(*) FROM `attempts` WHERE date = '27-04-2014'

答案 1 :(得分:0)

“受影响的行”仅计算已更改的行。如果您有0分的记录,则分数加倍无效,这些记录将不包括在计数中。