假设我做了类似以下的事情:
my $rows = $dbh->do("UPDATE MYTABLE SET amount=1200 WHERE id =123");
$rows返回1,即使金额已经是1200.所以它被认为是更新的行.
我的问题是:除了在更新之前进行查询之外,有没有办法检查更新是否实际更改了行中的值?
最佳答案
将SQL查询更改为:
UPDATE MYTABLE SET amount=1200 WHERE id = 123 AND amount <> 1200
该表将是相同的,但它返回实际更改的行数.