Mysql 从SQL表中删除重复字符
我的表有两列Mysql 从SQL表中删除重复字符,mysql,sql,Mysql,Sql,我的表有两列 Cust1 Cust2 A B C A A C C D B A D C 我们需要删除这些重复项并只保留一个组合 因此,输出可以是 Cust1 Cust2 A B A C C D 或 选择独特的组合: SELECT DISTINCT LEAST(Cust1, Cust2) Cust1, GREATEST(Cus
Cust1 Cust2
A B
C A
A C
C D
B A
D C
我们需要删除这些重复项并只保留一个组合
因此,输出可以是
Cust1 Cust2
A B
A C
C D
或
选择独特的组合:
SELECT DISTINCT LEAST(Cust1, Cust2) Cust1,
GREATEST(Cust1, Cust2) Cust2
FROM source_table
删除“重复项”(假设不存在完全重复的行,按值和顺序-它们不会被删除):
建议-通过
(最少(Cust1,Cust2),最大(Cust1,Cust2))
创建唯一索引,它将禁止重复插入。如果在两个方向上都有对,那么最简单的方法是:
select t.*
from t
where cust1 < cust2;
这两个选项都可以修改以处理单例,但您的问题中没有示例。所需的输出不能是“或”-它必须是确定性的。它可以是两个选项中的任何一个,字母的顺序无关紧要。最后的输出应该是只有两个LeTySyEP的组合,我想你需要决定哪一个,但也要认真考虑从数据库中删除数据是否正确。
DELETE t1.*
FROM source_table t1
JOIN source_table t2 ON (t1.Cust1, t1.Cust2) = (t2.Cust2, t2.Cust1)
WHERE t1.Cust1 > t1.Cust2
select t.*
from t
where cust1 < cust2;
delete t from t
where cust1 > cust2;