sql查找并删除带有trim的重复列

Pon*_*tek 1 mysql sql trim duplicates

我有一个表"partner_entries"有3列:our_ref | partner_ref | partner_tag其中所有3个字段构成主键.

我有一定数量的"重复"行,如下所示:

42 | abc | tag1  
42 | abc  | tag1 
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,它并不是真的重复,因为在同一个单词后面有一个空格.我可以根据our_ref和partner_tag检索重复项,如下所示:

SELECT   COUNT(*) AS nb_duplicates, our_ref, partner_tag
FROM     partners_entries
GROUP BY our_ref, partner_tag
HAVING   COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)

但是它也需要一些其中partner_ref确实不同的行,我只想选择其中partner_ref相同但后面有空格的那些,我该怎么做?

谢谢你的帮助

cha*_*cha 5

在select和GROUP BY子句中使用TRIM:

SELECT   COUNT(*) AS nb_duplicates, our_ref, TRIM(BOTH '\n' FROM partner_ref), partner_tag
FROM     partners_entries
GROUP BY our_ref, TRIM(BOTH '\n' FROM partner_ref), partner_tag
HAVING   COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)

使用扩展TRIM语法从数据中删除换行符和其他符号

SQL小提琴