sql >> Database >  >> RDS >> Mysql

Hoe te verwijderen uit select in MySQL?

SELECT (sub)query's retourneren resultaat sets . U moet dus IN . gebruiken , niet = in je WHERE clausule.

Bovendien, zoals weergegeven in dit antwoord u kunt dezelfde tabel niet wijzigen vanuit een subquery binnen dezelfde query. U kunt echter ofwel SELECT dan DELETE in afzonderlijke zoekopdrachten, of nest een andere subquery en alias het resultaat van de binnenste subquery (ziet er echter nogal hacky uit):

DELETE FROM posts WHERE id IN (
    SELECT * FROM (
        SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
    ) AS p
)

Of gebruik joins zoals voorgesteld door Mchl .



  1. Grondbeginselen van tabeluitdrukkingen, deel 11 - Aanzichten, overwegingen bij wijzigingen

  2. probleem bij het vinden van een lijst met bestanden in de map

  3. Inleiding tot langzaam veranderende afmetingen (SCD)

  4. PostgreSQL-jokerteken LIKE voor een lijst met woorden