SELECT
(sub)consultas retornam conjuntos de resultados . Então você precisa usar IN
, não =
em seu WHERE
cláusula. Além disso, conforme mostrado em esta resposta você não pode modificar a mesma tabela de uma subconsulta na mesma consulta. No entanto, você pode
SELECT
então DELETE
em consultas separadas, ou aninhe outra subconsulta e alie o resultado da subconsulta interna (parece bastante hacky, no entanto):DELETE FROM posts WHERE id IN (
SELECT * FROM (
SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
) AS p
)
Ou use junções conforme sugerido por Mchl .