我有一个包含3列的“partner_entries”表:our_ref | partner_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相同但后面有空格的那些,我该怎么做?
感谢您的帮助
答案 0 :(得分: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
使用扩展的TRIM语法删除数据中的换行符和其他符号