更新SQLite,如何获取受影响的已更改行的数量(不是找到的匹配行)

时间:2016-11-08 00:03:12

标签: php sql sqlite pdo

我找不到解决方案来检索受影响的已更改行的数量(而不是找到的匹配行)。 每个解决方案都是"找到/匹配的行"只有:

但我想知道更新的实际行数(仅在更新语句之前使用不同的值)。

查看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

我有办法做到这一点吗?

我似乎并不希望这种改善......

1 个答案:

答案 0 :(得分:1)

UPDATE语句更新两个行。对于这个计数而言,新值恰好与旧值相同并不重要。

如果您不想计算具有相同值的行,则必须手动过滤它们:

UPDATE table_update_count
SET val = 'AB'
WHERE val IS NOT 'AB';