我有一个包含 3 列的表“partner_entries”:our_ref |合作伙伴引用 | partner_tag
所有这 3 个字段构成主键。
我有一定数量的“重复”行,如下所示:
42 | abc | tag1
42 | abc | tag1
如您所见,它并不是真正的重复,因为同一个词后面有一个空格。 我可以像这样根据 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
但它也需要一些行,其中 partner_ref 确实不同,我只想选择那些 partner_ref 相同但后面有空格的行,我该怎么做?
谢谢你的帮助
最佳答案
在 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
使用扩展 TRIM从数据中删除换行符和其他符号的语法
关于mysql - sql查找并删除带有trim的重复列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30565661/