SELECT
(under)forespørgsler returnerer resultatsæt . Så du skal bruge IN
, ikke =
i din WHERE
klausul.
Derudover, som vist i dette svar
du kan ikke ændre den samme tabel fra en underforespørgsel i den samme forespørgsel. Du kan dog enten SELECT
derefter DELETE
i separate forespørgsler, eller indlejr en anden underforespørgsel og alias det indre underforespørgselresultat (ser dog ret hacket ud):
DELETE FROM posts WHERE id IN (
SELECT * FROM (
SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
) AS p
)
Eller brug joins som foreslået af Mchl .