在mySql中找到类似的条目

时间:2017-02-14 12:00:40

标签: mysql database duplicates

我试图在我的sql表中找到重复的条目,我通过以下查询很容易实现它。

SELECT * FROM sds_bank_phrases INNER JOIN (Select bank_statement FROM sds_bank_phrases GROUP  BY bank_statement HAVING COUNT(bank_statement) > 1) dup ON sds_bank_phrases.bank_statement = dup.bank_statement;
  • 现在我想要查找的是具有相同数据但另外添加了句号的条目。
  • 例如,bank_id 1 with bank_statement是
  • bank_id 2 with bank_statement是。
  • bank_id 3是,已经过编辑。
  • 所以从上面的例子我只想提取前两个条目,因为它们是关闭一次。只是完全停止是差异。
  • 我有20000个bank_statements,如何提取这些条目?

数据库表

enter image description here

  • 在上图中,我们可以看到数据未知有重复的条目。
  • 发布的查询可以找到ID为1274,1353,1418,2455,3026的所有条目,但找不到5637。
  • 因为该条目中有句号。这不被视为重复。
  • 预期结果将是拉入“不知道”。
  • 它应该忽略id为2787的ban_statement,因为bank_statement不同。

1 个答案:

答案 0 :(得分:1)

您可以使用TRIM(TRAILING'。'FROM your_column);

SELECT * 
FROM sds_bank_phrases 
INNER JOIN (Select TRIM( TRAILING '.' FROM bank_statement ) as clean_bank_statement
FROM sds_bank_phrases GROUP  BY bank_statement HAVING COUNT(TRIM( TRAILING '.' FROM bank_statement )) > 1) dup 
    ON TRIM( TRAILING '.' FROM sds_bank_phrases.bank_statement ) = dup.clean_bank_statement;