【MySQL】常见的业务处理-删除重复数据
程序员文章站
2022-03-07 10:41:42
...
业务场景
日常工作中我们经常会遇到这样的场景删除数据库中某个表中重复的数据。现在以一个案例驱动。
需求:删除评论表中同一订单同一商品的重复评论,只保留最早的一条。
上图是商品评论表
查看是否存在重复评论
查看是否存在对于一订单同一商品存在重复评论
SELECT order_id, product_id, COUNT(*)
FROM product_comment
GROUP BY order_id, product_id
HAVING COUNT(*)>1;
备份product_comment表
-- 使用LIKE操作完整复制product_comment表的建表语句
CREATE TABLE bak_product_comment_180110
LIKE product_comment;
-- 插入原表的数据
INSERT INTO bak_product_comment_180110
SELECT * FROM product_comment;
删除同一订单的重复评论
DELETE a FROM product_comment AS a JOIN (
SELECT order_id, product_id, MIN(comment_id)
FROM product_comment GROUP BY order_id, product_id HAVING COUNT(*)>1
) AS b ON a.order_id=b.order_id AND a.product_id=b.product_id AND a.comment_id>b.comment_id;
上一篇: css如何让字改变透明度
下一篇: 微信小程序502是什么意思