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

Verweisen auf dieselbe Tabelle sowohl als Ziel von UPDATE als auch als Datenquelle in MySql

Eine Methode ist die Verwendung von join stattdessen:

UPDATE wp_usermeta meta JOIN
       wp_usermeta meta2
       on meta.user_id = meta2.user_id and
          meta2.meta_key = 'nickname'
SET meta.meta_value = meta2.meta_value
WHERE meta.user_id = %d AND meta.meta_key = 'first_name';

Ich könnte vorschlagen, dem where etwas hinzuzufügen Klausel wie meta.meta_value is not null , nur für den Fall, dass der Vorname bereits ausgefüllt ist. Sie scheinen jedoch das Feld kopieren zu wollen, was das obige tut.