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

MySQL :vous ne pouvez pas spécifier la table cible pour la mise à jour dans la clause FROM

Obtenez-vous cette erreur ?

C'est parce que vous ne pouvez pas mettre à jour la table directement si vous l'utilisez sur une autre instruction de sous-sélection. Une alternative consiste à joindre la table avec elle-même.

UPDATE  list a
        INNER JOIN
        (
            SELECT  dn 
            FROM    list 
            GROUP   BY dn 
            HAVING  COUNT(*) < 2000 
        ) b ON a.dn = b.dn
SET     a.li = '6'
WHERE   a.li = '5