我有以下 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;
这里type,code是一个复合主键。
能否告诉我如何分别查出插入的记录数和更新的记录数?
我知道SELECT ROW_COUNT()给出了受影响的行(2个用于更新,1个用于插入)。 但如何分别查找
1) the number of rows updated
2) the number of rows inserted
感谢您的帮助
问候
基兰
最佳答案
我不知道从诊断信息中获取此信息的好方法。
无论如何,假设您已经控制它,以便只有 刚刚 INSERT
编辑的行位于表中(或仅被查询),这可以事后简单地检索:
SELECT COUNT(*) as Inserted, SUM(count - 1) as Updated
FROM my_counts;
(请注意,正如我的 SQLFiddle example 中所包含的那样,这些数字实际上可以从基础数据中预测)。
关于MYSQL插入和更新的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942024/