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

Zapytanie o aktualizację MySQL przy użyciu lewego sprzężenia

Więc chcesz przenieść foldery tylko wtedy, gdy folder o tej samej nazwie w docelowym folderze nadrzędnym nie istnieje:

UPDATE file_manager_folder f1
LEFT OUTER JOIN file_manager_folder f2 
    ON f1.name = f2.name AND f2.parentId = 54
SET f1.parentId = 54 
WHERE f2.name IS NULL AND f1.id IN (1,2,3);

Warunek przyłączenia wyszukuje folder o tej samej nazwie pod docelowym elementem nadrzędnym. Klauzula WHERE sprawdza, czy taki folder nie istnieje (f2.name ma wartość null tylko wtedy, gdy sprzężenie zewnętrzne nie znajduje dopasowania).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak usunąć duplikaty w tabeli SQL na podstawie wielu pól

  2. Warunkowe w MYSQL gdzie klauzula

  3. Jak zdefiniować liczbę całkowitą bez znaku w SQLAlchemy?

  4. MySQL bardzo powolny w przypadku zapytań do zmiany tabeli

  5. Ciągle otrzymuję ten kod błędu mysql #1089