Ошибочно добавлены дубликаты записей.Как мне их удалить? - PullRequest
0 голосов
/ 22 февраля 2011

EDIT

Этот запрос не работает, есть идеи почему?

select `key`, distinct `filename`, `url`, `processed`, `timestamp` from snaps;

В нем сказано проверять синтаксис около 'distinct filename``


У меня есть следующая таблица

CREATE TABLE IF NOT EXISTS `snaps` (
  `filename` varchar(255) COLLATE utf8_bin NOT NULL,
  `url` text COLLATE utf8_bin NOT NULL,
  `processed` int(11) NOT NULL,
  `timestamp` int(11) NOT NULL,
  KEY `key` (`key`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Я экспортировал строки таблицы и по ошибке импортировал ее обратно в ту же таблицу. Так что теперь у меня есть два ряда всего. filename является уникальным.

Как удалить дубликаты записей?

Ответы [ 3 ]

1 голос
/ 22 февраля 2011

ВЫБЕРИТЕ DISTINCT во временную таблицу, очистите первую и переместите их снова.

0 голосов
/ 22 февраля 2011

Имеет ли второй набор строк ту же метку времени, что и вставка?Если это так, вы можете УДАЛИТЬ на основе этой отметки времени.

В качестве альтернативы, вы можете SELECT INTO OUTFILE, удалить последнюю половину, TRUNCATE TABLE, а затем LOAD DATA INFILE.

0 голосов
/ 22 февраля 2011

Если у вас есть все исходные не дублированные строки таблицы, не могли бы вы просто

TRUNCATE <table> и затем снова импортировать их?

...