2015-09-04 5 views
-1

У меня есть таблица с идентификатором студента и студенческим адресом электронной почты, и я хочу удалить повторяющийся адрес электронной почты, я использую MySQL и задаюсь вопросом о любых хороших решениях. Для любого дублированного адреса электронной почты сохраните один из них в порядке.удалять повторяющиеся записи в таблице с помощью SQL

ввода пробы,

ID1 [email protected] 
ID2 [email protected] 
ID3 [email protected] 

Пример вывода,

ID1 [email protected] 
ID2 [email protected] 

спасибо заранее, Лин

+1

вы должны использовать проверку при установке электронной почты в базе данных ... если адрес электронной почты уже завершает ошибку выброса, которая уже существует, –

+0

@RahmanQaiser, спасибо за совет и дублирую уже там. Любые советы приветствуются. :) –

+1

@ LinMa - эти идентификаторы целые? –

ответ

3

Вы можете удалить данные с помощью соединения и сохранить новый или старый идентификатор, как по вашему желанию и здесь, как это делается

delete t1 from table_name t1 
join table_name t2 on t1.email = t2.email and t1.id > t2.id 

Это позволит сохранить старый идентификатор для дубликата значения http://sqlfiddle.com/#!9/9d2925/1

Если вы хотите, чтобы новый идентификатор затем изменить t1.id > t2.id к t1.id < t2.id

+0

умный и умный. :) –

+0

просто интересно, как работает SQL-модуль, лежащий в основе запроса. Не уверен, что для всех групп соединений внутри каждой группы, если SQL-механизм перечисляет все пары и удаляет меньший идентификатор по-разному, если это так, сложность будет большой. –

Смежные вопросы