我有以下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
感谢您的帮助
此致
基兰
答案 0 :(得分:2)
我不知道从诊断信息中获取此信息的好方法。
在任何情况下,假设您已对其进行了控制,以便只有行 INSERT
ed在表中(或者只会被查询),这可以简单地检索事后:
SELECT COUNT(*) as Inserted, SUM(count - 1) as Updated
FROM my_counts;
(请注意,正如我的SQLFiddle example中所包含的那样,这些数字实际上可以从基础数据中预测出来。)