andie Опубликовано 5 августа, 2003 Жалоба Поделиться Опубликовано 5 августа, 2003 Люди добрые, помогите пожалуйста, может кто слышал про такие программы в инете или знает как самостоятельно разработать модуль. Как можно найти в БД повторяющиеся записи, причем введены они могут быть по-разному, т.е. поиск не в лоб одинаковых записей, а по словоформам. Поиск только по одному полю.. НО.. Например, название может быть написано слитно или через дефис. Очень сложно найти такие записи.. Искренне оценю любую помощь.. Ссылка на комментарий Поделиться на другие сайты Поделиться
dartman Опубликовано 5 августа, 2003 Жалоба Поделиться Опубликовано 5 августа, 2003 (изменено) andie Буквально неделю назад мне пришлось нечто подобное писать, правда у меня поля повторялись точно. Твои условия название может быть написано слитно или через дефис очень осложняют задачу, ты прав.... Даже сходу и не придумаешь, как это сделать. Найдёшь алгоритм - кинь сюда исходник, если не затруднит. Мне тоже интересно.Хотя..... Насчёт дефиса - это поправимо. Берём нашу базу и копируем её в другую (чтобы исходную не повредить :(). Далее в цикле до последней записи в нужном нам поле ищем подстроку "-" и удаляем её нафиг. Всё, дефисы маст дай. Задача упрощается. Таким же макаром приводим все символы к одному регистру (тут уже многое зависит от возможностей конкретного языка программирования; есть ли там подобные функции, или придётся ручками...). Задача приводится к божескому виду. У нас НЕТ дефисов, все символы в одном регистре. Как в пределах одной базы найти дубликаты, я думаю ты разберёшься. Если что - пиши, скину свой алгоритм. Изменено 5 августа, 2003 пользователем dartman Ссылка на комментарий Поделиться на другие сайты Поделиться
msengine Опубликовано 6 августа, 2003 Жалоба Поделиться Опубликовано 6 августа, 2003 добавлю что для сравнения строк необходимо еще вычистить все пробелы и управляющие символы (новая строка, перевод каретки и т.д.). далее совсем просто. SELECT DISTINCT * FROM my_DB выбираем уникальные записи, соотв. все остальное лишнее. Как адресовать SQL запрос, для любого типа БД я думаю обьяснять не надо ? Ссылка на комментарий Поделиться на другие сайты Поделиться
AlexA Опубликовано 30 августа, 2003 Жалоба Поделиться Опубликовано 30 августа, 2003 SELECT * FROM DB WHERE field LIKE (string1*string2); Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти