привет.
есть таблица, в ней есть столбец links (ссылки на внутренние страницы сайта), много строк, хочу удалять дубли, если попадаются, каким запросом это лучше всего сделать?
спасибо
DELETE
`table`
FROM
`table`
LEFT OUTER JOIN
(SELECT MIN(`id`) AS `id`, `col1` FROM `table` GROUP BY `col1`) AS `tmp`
ON
`table`.`id` = `tmp`.`id`
WHERE
`tmp`.`id` IS NULL
DELETE
`mytable555`
FROM
`mytable555`
LEFT OUTER JOIN
(SELECT MIN(`id`) AS `id`, `page` FROM `mytable555` GROUP BY `page`) AS `tmp`
ON
`mytable555`.`id` = `tmp`.`id`
WHERE
`tmp`.`id` IS NULL
Я чистил базу на 11кк строк через HeidiSQL примерно минут 40, около 4кк дублейзапрос завис на 12й минуте, и чето ничего не удалил, я посмотрел запросов другим (select), посмотреть сколько дублей, запрос занял 4 минуты и показал 330к дублей из 5.2кк срок.
сделал дамп и руками вытащил все строки, через - EmEditor решил удалить дубли, удалилось дублей 4.5кк )))))
база из 800мб, стала 80
как-то так)
ооо, точняк, хорошая мысль. спса вообще в самой БД настрой столбец что бы если уже есть такое значение то больше не записывалось.
ага тоже ей пользуюсьчерез HeidiSQL
используй INSERT IGNOREтеперь прикол в том что нельзя добавлять списком, если в списке есть дубль, то ничего не добавляется, можно ли как-то обойти это? а то добавлять по 1й строке - не варик (