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の提案に従って、結合を使用します 。