mysql - удаления - удалить дубликаты строки по условию access




Удаление повторяющихся данных из таблицы с использованием MySQL (2)

Оператор AS не работает с операторами DELETE в MySQL.

Попробуйте это (непроверено):

DELETE FROM a using studios a
WHERE a.id >
ANY 
(
    SELECT b.id
    FROM studios as b
    WHERE a.name = b.name
    AND a.email  = b.email
)

Я пытаюсь удалить дубликаты данных из моей базы данных. Я нашел хороший пример, как это сделать в базе данных оракула .

Нижний запрос из этого ответа (только выбор повторяющихся строк) работает в MySQL, но запрос на удаление (см. Ниже) не ...

"DELETE FROM studios as a
 WHERE a.id >
       ANY (SELECT b.id
              FROM studios as b
             WHERE a.name = b.name
               AND a.email  = b.email
            )"

Ошибка, которую я получаю:

You have an error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near 'a
 WHERE a.id >
       ANY (SELECT b.id
              FROM studios as b
           ' at line 1

Итак, я искал правильный синтаксис удаления и любой синтаксис для использования, но не смог найти ничего плохого в моем запросе ... Любые идеи?


Попробуйте этот запрос -

DELETE t1 FROM studios t1
  JOIN (SELECT MIN(id) id, name, email FROM studios GROUP BY name, email) t2
    ON t1.id <> t2.id AND t1.name = t2.name AND t1.email = t2.email;




any