Как удалить строки в таблице, в которых совпадают 2 поля?

Статус
В этой теме нельзя размещать новые ответы.

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
416
Реакции
49
Есть таблица с городами такого вот вида
4f14261c322fddcc450fccd9589c4bdb.png

Проблема в том что в ней присутствуют города, названия которых повторяются. В нашем примере это Conant
Подскажите, каким образом можно почистить на дубли городов эту таблицу?
И запрос необходимо построить по следующей логике - если совпадает название города (name) и id региона(id_region), то удаляем дублирующую строку.
 
Оставит в базе строку с меньшим ID-шником:
Код:
DELETE t1 FROM tablename t1 INNER JOIN tablename t2
ON t1.id_region = t2.id_region AND t1.name = t2.name AND t2.id < t1.id
Бэкап только сделай, вдруг "промазал"
 
А на будущее переделай таблицу, добавь
Код:
UNIQUE KEY (id_counrtry,name)
что бы повторы не создавались
 
А на будущее переделай таблицу, добавь
Код:
UNIQUE KEY (id_counrtry,name)
что бы повторы не создавались
Задумка правильная, но совет из разряда вредных, т.к. оторван от контекста.
Добавит ТС индекс, а ему скрипт ошибки валить начнёт.. Кто виноват? Советчик!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху