Перейти к содержанию
СофтФорум - всё о компьютерах и не только

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


Рекомендуемые сообщения

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

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

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

НО..

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

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

Ссылка на комментарий
Поделиться на другие сайты

andie

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

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

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

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

Изменено пользователем dartman
Ссылка на комментарий
Поделиться на другие сайты

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

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

SELECT DISTINCT * FROM my_DB

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

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

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...