Zend DB:如何使用 INSERT ON DUPLICATE KEY 查找受影响的行的实际数量?
$db->update() 返回受影响的行数。
Zend_DB 没有方法用于在重复键更新时插入...,因此应该使用 query() 方法:
$result = $db->query('INSERT INTO table(key, field) SELECT val1, val2 FROM table as t2 ON DUPLICATE KEY UPDATE field = VALUES(field)');
要查明受影响或插入的记录数量: $result->rowCount()
但此方法还会计算所有使用相同值更新的记录。
我需要知道所有实际受影响(更改)的记录。
谢谢!
$db->update() returns the affected amount of rows.
There is no Zend_DB method for insert ... on duplicate key update ..., so one should use the query() method:
$result = $db->query('INSERT INTO table(key, field) SELECT val1, val2 FROM table as t2 ON DUPLICATE KEY UPDATE field = VALUES(field)');
To find out the amount of affected or inserted records:
$result->rowCount()
But this method also counts all the records that were updated with the same value.
I need to know all of the actual affected (changed) records.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不幸的是,“重复键更新”导致 ROW_COUNT() 或 mysql_rows_affected() 报告具有多个更新的行,它不是更新的唯一行的计数。
Unfortunately the "On Duplicate Key Update" causes ROW_COUNT() or mysql_rows_affected() to report rows with multiple updates, it is not a count of UNIQUE rows that are updated.