一步到位:
DELETE FROM t_order_detail
WHERE ID
IN(
SELECT * FROM(
SELECT ID
FROM t_order_detail
WHERE (order_no
,product_code
) IN (
SELECT order_no
,product_code
FROM t_order_detail
WHERE create_time like ‘2020-%’ GROUP BY order_no
,product_code
HAVING COUNT()> 1
)
AND ID
NOT IN(
SELECT MIN(ID
)FROM t_order_detail
where create_time like ‘2020-%’ GROUP BY order_no
,product_code
HAVING COUNT()> 1
)
) T
);
二:需要不断执行,直到没有重复数据为止
DELETE FROM t_order_detail
WHERE ID
IN (
SELECT * FROM (
SELECT ID
FROM t_order_detail
where create_time like ‘2020-%’ GROUP BY order_no
,product_code
HAVING COUNT(*) > 1
)L
);