Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como excluir da seleção no MySQL?


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 .