sql >> Databasteknik >  >> RDS >> Mysql

Använd en CTE för att UPPDATERA eller DELETE i MySQL

Eftersom CTE inte kan uppdateras måste du hänvisa till den ursprungliga tabellen för att radera rader. Jag tror att du letar efter något sånt här:

WITH ToDelete AS 
(
   SELECT ID,
          ROW_NUMBER() OVER (PARTITION BY lastName, firstName ORDER BY ID) AS rn
   FROM mytable
)   
DELETE FROM mytable USING mytable JOIN ToDelete ON mytable.ID = ToDelete.ID
WHERE ToDelete.rn > 1; 


  1. MySQL-delsträng mellan två strängar

  2. mysql_connect återvänder Kan inte ansluta till lokal MySQL-server via socket på fjärrvärdanslutningen?

  3. Hur SUBSTR()-funktionen fungerar i MySQL

  4. Luckor och öar på 2 kolumner - om kolumn A i följd och kolumn B är identiska