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