Очистить таблицу от дубликатов

vonica

Новичок
Очистить таблицу от дубликатов

Кто знает оптимальный метод очистки таблицы от повторяющихся записей

Пример
id name
1 Vladimir
2 Vladimir
3 Nikolay

Надо получить
1 Vladimir
2 Nikolay
 

Bitterman

Новичок
Как вариант, вынуть все данные через DISTINCT, очистить таблицу и вставить данные заново.
 

Bitterman

Новичок
А чем этот вариант не устраивает? Или ты собираешься проделывать эту операцию постоянно?
 

vonica

Новичок
да он то устраивает, хотелось бы узнать может у кого есть другие варианты
 

Bitterman

Новичок
Gas
Судя по корневому посту, тредстартеру нужно, что бы в результате id были по порядку.
 

Sluggard

Новичок
vonica
1. Прочитай все, что написано по ссылке.
2. Если в голове никаких мыслей не появилось, повтори пункт 1.
 

kruglov

Новичок
vonica
может у кого есть другие варианты
Легко, хоть десяток, вплоть до "распечатать, замазать замазкой и отсканировать". Поясните, что не нравится в предложенном решении, а то мы тут будем решения предлагать, а вы "не то" говорить?
 

Alexandre

PHPПенсионер
делал нечто похожее для ms-SQL, возможно оно подойдет для мускуля.
сейчас уже не помню, поищу решение
 

Gas

может по одной?
Bitterman
что бы в результате id были по порядку.
кстати, distinct вроде тоже не гарантирует порядок записей или ошибаюсь?
Естественно по приведённой ссылке не единственно возможный вариант и тоже у кого-то подсмотренный :)

Alexandre
думаешь стоит искать? вот если б на mysql'е нужно было огород городить, а на ms решалось красиво, тогда посмотреть было б интересно, а так.
 

Bitterman

Новичок
Gas
кстати, distinct вроде тоже не гарантирует порядок записей или ошибаюсь?
Нет. Но я предлагал очистить таблицу и записать в нее заново. В этом случае id были бы по порядку, по идее. Естественно при условии, что там проставлен auto_increment.
 

Gas

может по одной?
Bitterman
ага, каждой задаче - свой инструмент.
 

vonica

Новичок
Все спасибо, цель этого поста было расширить познания, думал может есть всетаки красивые решения, а удалить дубликаты с помощью дистинкта, можно, и ид получить по порядку тоже можно, просто удалить столбик ид, а потом заново его создать
 

Alexandre

PHPПенсионер
думаешь стоит искать? вот если б на mysql'е нужно было огород городить, а на ms решалось красиво, тогда посмотреть было б интересно, а так.
Gas там решалось с помощью вложенного запроса.
Если селект муська вложенный позволяет, то делет - еще не известно. по этому, очевидно не стоит.
 

nirex

Новичок
может поиграться с union , один запрос получить c distinct а другой без тогда он должен исключить повторяющие в обоих и остануться
только дубли :)
правда не пробовал
 
Сверху