Mysql
 sql >> Base de données >  >> RDS >> Mysql

Référencer la même table à la fois comme cible de UPDATE et comme source de données dans MySql

Une méthode consiste à utiliser join à la place :

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

Je pourrais suggérer d'ajouter quelque chose au where clause telle que meta.meta_value is not null , juste au cas où le prénom serait déjà renseigné. Cependant, vous semblez vouloir copier le champ, ce que fait ce qui précède.