У меня есть таблица с именем emaildata, состоящая из 4 столбцов адреса электронной почты, имени домена, данных и идентификатора.
Столбец адреса электронной почты должен содержать только уникальные записи, но есть много дубликатов.Имя домена и столбец данных не являются уникальными, и, как таковые, будут содержать дубликаты, что хорошо.Столбец id имеет значение autoincrement, поэтому он будет содержать только уникальные значения.
Мой вопрос: как мне избавиться от всех строк с дублирующимися адресами электронной почты, сохраняя строку с самым низким идентификатором?
Должно быть около 370 000 строк, но в настоящее время у меня 906 000.
У меня был оператор SQL, перед которым я использовал аналогичную таблицу, и я попытался адаптировать его к этому безуспешно.
delete T1
from emaildata T1, emaildata T2
where T1.emailaddress = T2.emailaddress
and T1.id > T2.id
Вышеуказанное было основано на следующем, который был применен к другой таблице и работал нормально.
delete T1
from email_list_subscribers T1, email_list_subscribers T2
where T1.emailaddress = T2.emailaddress
and T1.subscriberid > T2.subscriberid
Я пытался запустить это для моей таблицы на удаленном сервере в phpmyadmin и послеНажав кнопку GO, панель загрузки поднимается посередине, а затем исчезает, как будто она обрабатывает, но это никогда не происходит.
Я пытался повторить это для той же таблицы, работающей на моем домашнем сервере (XAMPP) через phpmyadmin и снова с HeidiSQL - та же проблема с phpmyadmin и Heidi, похоже, вылетает.
Я пробовал другие решения, которые у меня естьвидел здесь, но я, кажется, получаю ту же проблему "тайм-аут" / сбой.У меня никогда не возникало проблем с исходным оператором, работающим на удаленном сервере, при условии, что это было по отношению к базе данных, составляющей треть от размера.
Любая информация будет оценена.