Я пытаюсь удалить повторяющиеся строки из таблицы, но все мои усилия либо приводят к ошибке, либо застревают во время выполнения. Мой стол содержит 16,8 миллиона записей, включая 1,5 миллиона дубликатов. Структура таблицы выглядит следующим образомУдалить повторяющиеся строки MySQL
--------------------------------------
| id | number | city | region | site |
--------------------------------------
| 1 | 12345 | abc | xyz | 321 |
| 2 | 67890 | def | axc | 167 |
| 3 | 12345 | abc | xyz | 321 |
| 4 | 13400 | fff | aaa | 301 |
--------------------------------------
Я пытался использовать некоторые из предложенных подходов в ответах здесь на переполнение стека, но не смог найти решение, которое работало для меня.
DELETE n1 FROM data n1, data n2 WHERE n1.id > n2.id AND n1.number = n2.number
Не работает, так что я попробовал следующее:
DELETE FROM data where data.number in
(
SELECT number from data GROUP BY number HAVING COUNT(*)>1
)
LIMIT 1
Не используется здесь либо, так что я застрял. Приветствуются всевозможные предложения.
РЕШЕНИЕ который работал на меня
Marc-B отмечен пост дубликат stackoverflow.com/a/3312066/1528290 попробовал этот подход, и он работал как шарм. мой запрос был:
alter ignore table data add unique i_number (number)
http://stackoverflow.com/questions/30401571/how-to-remove-duplicate-row-considering-the-arabic-phonetics/30402156#30402156 – Uueerdo
@ B-Аббаси. Вы хотите удалить все вхождения повторяющихся строк? Или вы хотите сохранить одну строку для каждого набора повторяющихся строк? – DfrDkn
Почему данные DELETE n1 FROM n1, данные n2 WHERE n1.id> n2.id AND n1.number = n2.number' не работают? Какая ошибка была дана? – johnjps111