Dram

Рейтинг
1115
Регистрация
28.06.2008

Было у меня такое - может поможет /ru/forum/comment/13785186

надо просто NOT убрать

DELETE FROM working

WHERE id IN (SELECT * FROM t_temp);

проверил, нашло 72 дубля.

добавил к запросу

DELETE FROM working

WHERE id NOT IN (SELECT * FROM t_temp);

в итоге удалило все нафиг кроме этих 72 записей :))))

Так должно быть?

CREATE TEMPORARY TABLE `t_temp`
as (
SELECT min(id) as id
FROM `working`
GROUP BY item_id, c_id
);

DELETE FROM working
WHERE id NOT IN (SELECT * FROM t_temp);

Chukcha, я наверное не догоняю - а где в ваших примерах анализ полей

`item_id`, `c_id` ?

Как же оно найдет дубли?

Дейл Купер:
Не на пару дней менял, естественно.

Пару дней это не эксперемент - тут хотя бы месяц нужен чтобы весь сайт робот обошел и все учел.

Примени эти правила в фаерволе и забудешь про этих ботов /ru/forum/958253

dma84:
ALTER IGNORE TABLE `working` ADD UNIQUE INDEX (`item_id`, `c_id`);

#1062 - Дублирующаяся запись '286075-0' по ключу 'item_id'

Не получится поставить уникальный индекс - дубли же есть :)))

[umka], спасибо, то что нужно!

Спасибо, вроде работает :))

Всего: 6928