Jump to content

Поиск дублирующихся записей в БД


Recommended Posts

Люди добрые, помогите пожалуйста, может кто слышал про такие программы в инете

или знает как самостоятельно разработать модуль.

Как можно найти в БД повторяющиеся записи, причем введены они могут быть по-разному, т.е. поиск не в лоб одинаковых записей, а по словоформам. Поиск только по одному полю..

НО..

Например, название может быть написано слитно или через дефис. Очень сложно найти такие записи..

Искренне оценю любую помощь..

Link to comment
Share on other sites

andie

Буквально неделю назад мне пришлось нечто подобное писать, правда у меня поля повторялись точно. Твои условия

название может быть написано слитно или через дефис
очень осложняют задачу, ты прав.... Даже сходу и не придумаешь, как это сделать. :blink: Найдёшь алгоритм - кинь сюда исходник, если не затруднит. Мне тоже интересно.

Хотя..... Насчёт дефиса - это поправимо. Берём нашу базу и копируем её в другую (чтобы исходную не повредить :(). Далее в цикле до последней записи в нужном нам поле ищем подстроку "-" и удаляем её нафиг. Всё, дефисы маст дай. Задача упрощается.

Таким же макаром приводим все символы к одному регистру (тут уже многое зависит от возможностей конкретного языка программирования; есть ли там подобные функции, или придётся ручками...). Задача приводится к божескому виду. У нас НЕТ дефисов, все символы в одном регистре. Как в пределах одной базы найти дубликаты, я думаю ты разберёшься. Если что - пиши, скину свой алгоритм.

Edited by dartman
Link to comment
Share on other sites

добавлю что для сравнения строк необходимо еще вычистить все пробелы и управляющие символы (новая строка, перевод каретки и т.д.).

далее совсем просто.

SELECT DISTINCT * FROM my_DB

выбираем уникальные записи, соотв. все остальное лишнее.

Как адресовать SQL запрос, для любого типа БД я думаю обьяснять не надо ?

Link to comment
Share on other sites

  • 4 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...