удаление дубликатов строк

Foshvad

Guest
удаление дубликатов строк

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

Структура таблицы следующая:

PHP:
CREATE TABLE table (
  field smallint(5) NOT NULL default '0',
  name varchar(15) NOT NULL default '',
  val varchar(100) NOT NULL default '',
) TYPE=MyISAM;
Можно ли это сделать SQL запросом или надо писать PHP-скрипт? И, если второе, то как обратиться к конкретной строке?..


Спасибо!
 

Zaval

Новичок
Создай временно ключ id, потом select distinct name
потом в цикле delete from table where name = $row['name']
and id != $row['id']
может можно и проще но этож думать надо а для одноразового исполнения покатит :)
 

Crazy

Developer
Re: удаление дубликатов строк

Автор оригинала: Foshvad
как это сделать, если нет первичного ключа (он для работы с таблицей не нужен)
Таблица без первичного ключа в 99.9% случаев есть бред. Hint: первичный ключ -- это вовсе не специальный индекс или поле ID.
 

Konstantin

Guest
Сделай select into <new_table> distinct * from <old_table>
Удали старую таблицу, и переименную новую в старую.

ЗЫ. Только проверь сначала, что все что нужно скопировалось.
 
Сверху