gpt4 book ai didi

mysql - 如何在特定条件下删除重复项

转载 作者:行者123 更新时间:2023-11-29 08:35:40 25 4
gpt4 key购买 nike

我有一个 mysql 表,我想在特定条件下删除重复项

如果名称、cl_1、cl_2、cl_3、cl_4、cl_5、cl_6 完全相同,我想删除,否则如果其中一个不同且其他列相同,则无需删除。

例如我想删除第 1 行和第 4 行而不是第 7 行

id  name    cl_1    cl_2    cl_3    cl_4    cl_5    cl_6    
--------------------------------------------------------------
1 name1 T1 T2 T3 T4 T5 T6 (<< Remove)
2 name2 L1 M2 L3 L4 T5 T6
3 name3 T1 T2 T3 T4 T5 T6
4 name1 T1 T2 T3 T4 T5 T6 (<< Remove)
5 name2 T1 T2 T3 T4 T5 T6
6 name3 T1 T2 T3 T4 T5 T6
7 name1 T1 T2 T3 T4 T5 K6 (Not this one)
8 name5 T1 T2 T3 T4 T5 N6
9 name6 T1 T2 T3 T4 T5 H6

最佳答案

这应该有效:

DELETE Y
FROM YourTable Y JOIN
(
SELECT
name, cl_1, cl_2, cl_3, cl_4, cl_5, cl_6
FROM YourTable
GROUP BY name, cl_1, cl_2, cl_3, cl_4, cl_5, cl_6
HAVING COUNT(1) > 1
) T ON Y.name = T.name
AND Y.cl_1 = T.cl_1
AND Y.cl_2 = T.cl_2
AND Y.cl_3 = T.cl_3
AND Y.cl_4 = T.cl_4
AND Y.cl_5 = T.cl_5
AND Y.cl_6 = T.cl_6

SQL Fiddle Demo

顺便说一句——第 3 行和第 6 行怎么样?这些看起来完全一样吗?

http://sqlfiddle.com/#!2/26b8b/1

关于mysql - 如何在特定条件下删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15306596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com