Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Aktualisierungsabfrage mit Linksverknüpfung

Sie möchten also nur Ordner verschieben, wenn ein gleichnamiger Ordner unter dem übergeordneten Zielordner dies nicht tut existieren:

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);

Die Join-Bedingung sucht nach einem Ordner mit demselben Namen unter dem übergeordneten Ziel. Die WHERE-Klausel testet, dass kein solcher Ordner existiert (f2.name ist nur null, wenn der äußere Join keine Übereinstimmung findet).