Java / SQL поиск дубликатов

#java #database #jdbc #duplicates #derby

#java #База данных #jdbc #дубликаты #дерби

Вопрос:

Каков наилучший способ поиска и удаления дублированных или похожих записей в базе данных?

Подобное означает то же самое в некоторых столбцах базы данных

Сейчас я делаю это с помощью 1 for_loop для текущих строк базы данных / таблицы, 1 for_loop для строк базы данных от текущей до последней, 1 for_loop для столбцов базы данных и, наконец, переключателя для типа столбца. Что занимает несколько минут

Комментарии:

1. Невозможно ответить без уточнения, что означает «дублированный или аналогичный».

2. привет @chrylis я сказал, что я подразумеваю под подобным. Я имею в виду, что 2 записи должны быть одинаковыми в некоторых столбцах базы данных. и дублировать означает, что эти 2 записи должны быть одинаковыми во всех столбцах.

Ответ №1:

рассматривали ли вы сортировку (по нужным столбцам)…и после этого открываем курсор и удаляем похожие ресурсы.

Комментарии:

1. привет @RAHUL-ROY ; Я пытался. проблема здесь в том, что результирующий набор , созданный из SQL, содержащий order by слова, автоматически становится недоступным для обновления.

2. дорогой @RAHUL я проделывал подобную вещь в другом месте, я создал дополнительный столбец в виде строки с номером2 и я создал order by sql … затем создал массив дубликатов на основе этой строки с номером 2 … наконец, еще один sql без order by и обновите его из созданного массива… но, как вы видите, это непростой способ … а также получить время (как у меня, так и у компьютера! 🙂 )

3. Привет @mhjstackoverflow: Если вы можете добавить столбец в базу данных, то это намного проще ….. добавьте еще один столбец (скажем, приращение значения идентификатора строки) прямо сейчас. запустите belwo sql. удалите из таблицы, в которой отсутствует row_id (выберите uniq row_id из таблицы a, таблица b где(условие для similiaritylike a.X=b.X anda.Y = b.Y ) ) Пожалуйста, дайте мне знать, если у вас возникнут какие-либо проблемы в этом.

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

5. Спасибо, что выбрали в качестве ответа.