Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Użyj CTE do UPDATE lub DELETE w MySQL

Ponieważ CTE nie można aktualizować, musisz odwołać się do oryginalnej tabeli, aby usunąć wiersze. Myślę, że szukasz czegoś takiego:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobieranie danych za pomocą Jquery, AJAX i PHP z bazy danych MySQL

  2. połączenie z bazą danych nie działa po utworzeniu pliku jar

  3. Jak uzyskać dostęp do MySQL z wielu wątków jednocześnie?

  4. Przestaw wiersz MySQL na dynamiczną liczbę kolumn

  5. jak sprawić, by wartości wierszy były dynamicznie zmieniane w kolumny w mysql