Есть таблица в ней записи Маша Владимир Маша Ольга Люда Коля Владимир Ольга Надо удалить те которые повторяются, оставив только один раз Результат должен быть Маша Владимир Ольга Люда Коля
а если [sql]DELETE FROM ttttttable WHERE name='Николай Николаич' LIMIT 1, n[/sql] n - колво записей соответствующих запросу минус одын
joost 1. Экспорт таблицы в текстовый файл (только данные, без структуры таблицы). 2. В текстовом файле search&replace: все INSERT меняем на INSERT IGNORE. 3. Удаление всех записей из таблицы. 4. Добавление UNIQUE-индекса на поле name. 5. Импорт таблицы из текстового файла
а можно как-то DELETE FROM ttttttable WHERE [повторяется в таблице больше одного раза] LIMIT 1, [количество повторений name]-1
joost Насколько мне известно, нет. По стандартам SQL нельзя удалять записи из той же таблицы, из которой происходит выборка. А без выборки простое условие не придумать, разве что использовать временную таблицу или дополнительное поле.
А что если так? Код (Text): delete from table where name in (select name from table group by name having count(*)>1 )
На самом деле задача решается достаточно просто. [sql]delete from ИмяТаблицы using ИмяТаблицы,ИмяТаблицы as Псевдоним where ИмяТаблицы.ИмяПоляСповторами=Псевдоним.ИмяПоляСповторами and ИмяТаблицы.КлючевоеПоле<>Псевдоним.КлючевоеПоле;[/sql]