2010-03-10 87 views
1

$ db-> update()返回受影响的行数。Zend DB:如何使用INSERT ON DUPLICATE KEY查找受影响的行的实际数量?

没有为插入没有Zend_Db的方法......在重复键更新......,所以应该使用query()方法:

$结果= $ DB->查询(“INSERT INTO表(键,字段)SELECT val1,val2 FROM table as t2 ON DUPLICATE KEY UPDATE field = VALUES(field)');

要了解受影响或插入的记录量:) $ result-> rowCount时(

但是这种方法也计算所有用相同的值更新的记录。

我需要知道所有实际受影响(更改)的记录。

谢谢!

回答

0

不幸的是,“重复键更新”会导致ROW_COUNT()或mysql_rows_affected()报告具有多个更新的行,但这不是更新的UNIQUE行的计数。

+0

我使用的两种策略是:A)遵循'on-dup-key'查询,对照表使用定义唯一记录的标准进行选择。 B)比较'on-dup-key'查询前/后的记录数。 – 2011-06-24 16:51:48

相关问题