У меня есть несколько тысяч записей с несколькими 100 полями в таблице MySQL.Как удалить повторяющиеся записи в MySQL, сохранив эти поля с данными в дублированном элементе, но не в исходном элементе?
Некоторые записи дублируются и помечены как таковые. Теперь, когда я могу просто удалить обманы, я хочу сохранить любые другие возможные ценные ненулевые данные, которых нет в исходной версии записи. Надеюсь, у меня есть смысл.
Например:
a b c d e f key dupe
--------------------
1 d c f k l 1 x
2 g h j 1
3 i h u u 2
4 u r t 2 x
Из приведенной выше таблицы образца, желаемый результат:
a b c d e f key dupe
--------------------
2 g c h k j 1
3 i r h u u 2
Если вы посмотрите на нее внимательно, дубликат определяется с помощью ключа (это то же самое для 2 записей, поэтому тот, у которого есть поле «x» для обмана, является тем, которое нужно удалить, сохранив некоторые из полей от обмана (например, значения c, e для ключа 1).
Пожалуйста, меня знаете, если вам нужна дополнительная информация об этой загадочной проблеме.
Спасибо тонне!
p.s: Если это невозможно с использованием MySQL, образец скрипта PERL/Python был бы замечательным! Благодаря!
Не удалось ли записать более 1 запись об ошибке для заданного значения ключа? – BenV
Я думаю, что ключ на самом деле не «ключ» (возможно, серогатный ключ есть ...) – Dani
Не будет более одного обмана. Они существуют парами из двух. Ключ только для того, чтобы отличить обманщиков. – ThinkCode