seleccionar - Eliminar datos duplicados de una tabla utilizando MySQL
select mysql registros duplicados (2)
Estoy tratando de eliminar datos duplicados de mi base de datos. Encontré un buen ejemplo aquí sobre cómo hacer esto en una base de datos de Oracle .
La consulta inferior de esa respuesta (solo seleccionando las filas duplicadas) funciona en MySQL, pero la consulta de eliminación (ver a continuación) no ...
"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
)"
El error que recibo es:
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
Entonces, busqué la sintaxis de eliminación correcta y cualquier sintaxis para usar, pero no encontré nada erróneo en mi consulta ... ¿Alguna idea?
El operador AS
no funciona con las instrucciones DELETE
en MySQL.
Pruebe esto (sin verificar):
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
)
Prueba esta consulta -
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;