sql >> Databáze >  >> RDS >> Mysql

Použijte CTE k UPDATE nebo DELETE v MySQL

Vzhledem k tomu, že CTE nelze aktualizovat, musíte se k odstranění řádků odkázat na původní tabulku. Myslím, že hledáte něco takového:

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. PIG UDF v JAVA ERROR 1070

  2. Dezinfikování proměnných PHP, používám to nadměrně?

  3. Analytické funkce LEAD a LAG

  4. password_hash, password_verify, mySQL nedorozumění?