2017-02-14 4 views
1

Я пытался найти повторяющиеся записи в моей таблице sql, которые я довольно легко выполнил с помощью нижеследующего запроса.Найти похожие записи в mySql

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 с bank_statement Да.
  • bank_id 3 с Да, он был отредактирован.
  • поэтому из приведенного выше примера я просто хочу извлечь 1-ю две записи, потому что они закрываются один раз. просто полная остановка - разница.
  • У меня есть 20000 bank_statements и как я могу извлечь такие записи?

DB таблица

enter image description here

  • На изображении выше мы можем увидеть данные Не известно повторяющихся записей.
  • Отправленный запрос может найти все записи с идентификатором 1274, 1353,1418,2455,3026, но не может найти 5637.
  • Поскольку в этой записи есть полная остановка. Это не считается дублирующим.
  • Ожидаемый результат будет заключаться в том, чтобы не знать также.
  • Он должен игнорировать ban_statement с id с 2787, потому что bank_statement отличается.
+0

обновления вы вопрос с надлежащей выборкой данных и ожидаемым результатом – scaisEdge

+0

я добавил их @scaisEdge –

+0

EXPLAIN лучше вы хотите рассчитывать как дубликат также строки с полной остановкой (точка) в конце? – scaisEdge

ответ

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; 
+0

Нет. Я получаю неожиданный TEXT_STRING, если я использую TRIM (TRAILINF '.' FROM bank_statement) –

+0

TRIM (TRAILING). Должна быть ошибка..typ –

+0

Да .. TRAILING ... ошибка типографии .. ответ обновлен. – scaisEdge