我找不到解决方案来检索受影响的已更改行的数量(而不是找到的匹配行)。 每个解决方案都是"找到/匹配的行"只有:
但我想知道更新的实际行数(仅在更新语句之前使用不同的值)。
查看SQL "matching found rows" vs "affected rows",既没有命令行,也没有连接器PHP PDO能够返回实际更改的行数。
要继续,请:
CREATE TABLE table_update_count ('id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, 'val' VARCHAR);
INSERT INTO table_update_count (val) VALUES ('AA');
INSERT INTO table_update_count (val) VALUES ('AB');
UPDATE table_update_count SET val = 'AB';
获得的结果:2
预期结果:1
我有办法做到这一点吗?
我似乎并不希望这种改善......
答案 0 :(得分:1)
UPDATE语句更新两个行。对于这个计数而言,新值恰好与旧值相同并不重要。
如果您不想计算具有相同值的行,则必须手动过滤它们:
UPDATE table_update_count
SET val = 'AB'
WHERE val IS NOT 'AB';