DELETE FROM `mytbl`
INNER JOIN (
SELECT 1 FROM `mytbl`
GROUP BY `duplicated_column` HAVING COUNT(*)=2
) USING(`id`)
Edit:
Мой плохой, приведенный выше запрос не будет работать.
Предполагая структуру таблицы:
id
int auto_increment
num
int # <- это столбец с дублированными значениями </p>
Следующий запрос будет работать в MySQL (я проверял):
DELETE `mytbl` FROM `mytbl`
INNER JOIN
(
SELECT `num` FROM `mytbl`
GROUP BY `num` HAVING COUNT(*)=2
) AS `tmp` USING (`num`)
Запрос удалит строки, имеющие 2 (не более или более) дублированных значения в столбце num
.
Редактировать (снова):
Я предлагаю добавить ключ к столбцу num
.
Edit (# 3):
В случае, если автор хотел удалить дублирующиеся строки , для MySQL должно работать следующее (у меня это работает):
DELETE `delete_duplicated_rows` FROM `delete_duplicated_rows`
NATURAL JOIN (
SELECT *
FROM `delete_duplicated_rows`
GROUP BY `num1` HAVING COUNT(*)=2
) AS `der`
Предполагая, что структура таблицы:
CREATE TABLE `delete_duplicated_rows` (
`num1` tinyint(4) DEFAULT NOT NULL,
`num2` tinyint(4) DEFAULT NOT NULL
) ENGINE=MyISAM;