SELECT (サブ)クエリは結果セットを返します 。したがって、INを使用する必要があります 、=ではありません WHERE 条項。
さらに、この回答
同じクエリ内のサブクエリから同じテーブルを変更することはできません。ただし、SELECTのいずれかを使用できます 次にDELETE 別のクエリで、または別のサブクエリをネストして、内側のサブクエリの結果をエイリアスします(ただし、かなりハッキーに見えます):
DELETE FROM posts WHERE id IN (
SELECT * FROM (
SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
) AS p
)
または、Mchlの提案に従って、結合を使用します 。