Удалить повторяющиеся значения из поля в таблице MySQL
Я после некоторой помощи собираю запрос, чтобы удалить дубликаты данных в определенном поле в одной из моих таблиц.
У меня есть таблица контактов, которую мне нужно импортировать в другую систему. Новая система требует, чтобы поле электронной почты было уникальным. Мне нужен запрос, который позволит мне выполнить поиск в поле электронной почты и удалить любые дублирующиеся данные или установить для него значение "".
Я не хочу удалять строки, просто дубликат электронного письма. Так что, если есть две записи, содержащие адрес электронной почты gaz@example.com, я хочу сохранить первую ссылку при удалении второй.
Кажется, что это должно быть простым делом, но я изо всех сил работаю над тем, как этого добиться. Благодарю.
2 ответа
Вам нужно использовать запрос, подобный следующему:
UPDATE CONTACTS A, CONTACTS B
SET B.EMAIL=NULL
WHERE A.EMAIL=B.EMAIL
AND A.KEY_FIELD>B.KEY_FIELD
Используйте ссылку на поле, чтобы определить, какие из них удалены.
UPDATE CONTACTS SET b.email = ""
FROM CONTACTS a, CONTACTS b
WHERE a.EMAIL = b.EMAIL AND a.ID>b.ID
Другое возможное решение
Ссылка:
http://stackru.com/questions/2044467/how-to-update-two-tables-in-one-statement-in-sql-server-2005