MYSQL插入和更新的记录数

时间:2012-08-13 20:44:41

标签: mysql sql

我有以下SQL语句

INSERT INTO my_counts (type,code,count) SELECT type,id ,1 from my_data WHERE user_id=10
ON DUPLICATE KEY UPDATE count = count + 1; 

此处类型,代码是复合主键。

您能告诉我如何找出插入的记录数量以及单独更新的记录数量?

我知道 SELECT ROW_COUNT()给出了受影响的行(2表示更新,1表示插入)。 但如何分别找出

1) the number of rows updated 
2) the number of rows inserted

感谢您的帮助

此致

基兰

1 个答案:

答案 0 :(得分:2)

我不知道从诊断信息中获取此信息的好方法。

在任何情况下,假设您已对其进行了控制,以便只有行 INSERT ed在表中(或者只会被查询),这可以简单地检索事后:

SELECT COUNT(*) as Inserted, SUM(count - 1) as Updated
FROM my_counts;

(请注意,正如我的SQLFiddle example中所包含的那样,这些数字实际上可以从基础数据中预测出来。)