Czy pojawia się ten błąd?
Dzieje się tak, ponieważ nie możesz zaktualizować tabeli bezpośrednio, jeśli używasz jej w innej instrukcji subselect. Jedną z alternatyw jest dołączenie do stołu z samym sobą.
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