Zend DB:如何使用 INSERT ON DUPLICATE KEY 查找受影响的行的实际数量?

发布于 2024-08-24 08:28:06 字数 354 浏览 7 评论 0原文

$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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫南 2024-08-31 08:28:06

不幸的是,“重复键更新”导致 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文