获取mysql ON DUPLICATE KEY UPDATE ..插入和更新的行数

时间:2016-05-03 13:09:59

标签: php mysql

使用以下查询插入更新记录:

INSERT INTO table (col_a,col_b,col_c,col_d) VALUES (val_a,val_b,val_c,val_d) ON DUPLICATE KEY UPDATE col_d = VALUES(col_d)  

mySQL报告:

每插入一行影响, 每次更新影响2行, 每个重复影响0行

关注链接:Getting number of rows inserted for ON DUPLICATE KEY UPDATE multiple insert?

但没有为插入和更新记录获取正确的数字。

有没有办法返回正确数量的插入,更新和跳过的行(重复)?

1 个答案:

答案 0 :(得分:0)

谢谢溢出者,我在某种程度上努力了...感谢mitksoft寻求帮助,使用了用户user3556345在另一篇文章中提供的答案 - MySQL on duplicate key update + affected row count

使用mysql_info()获取实际记录,重复和跳过的行和警告(如果有的话)

以下代码:

list($rec, $dupes, $warns) = sscanf(mysql_info($link), "Records: %d Duplicates: %d Warnings: %d"); // courtesy of user at big lake dot com - php.net
$inserts = $total_rows_affected - ($dupes * 2);
$updates = ($total_rows_affected - $inserts)/2;
$skipped = $rec - ($inserts + $updates);
$total = $rec;