sql >> Base de Datos >  >> RDS >> Mysql

MySQL:no puede especificar la tabla de destino para la actualización en la cláusula FROM

¿Estás recibiendo este error?

Es porque no puede actualizar la tabla directamente si la está usando en otra declaración de subselección. Una alternativa de esto es unir la mesa consigo misma.

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