Du måste använda en tillfällig tabell, eftersom du inte kan uppdatera något du använder för att välja. Ett enkelt exempel:
Detta kommer inte att fungera :
UPDATE mytable p1 SET p1.type= 'OFFER' WHERE p1.parent IN
(SELECT p2.id from mytable p2 WHERE p2.actu_id IS NOT NULL);
Detta kommer att göra jobbet:
UPDATE mytable p1 SET p1.type= 'OFFER' WHERE p1.parent IN
(SELECT p2.id from (SELECT * FROM mytable) p2 WHERE p2.actu_id IS NOT NULL);
"från (SELECT * FROM mytable) p2" kommer att skapa en tillfällig dubblett av din tabell, som inte kommer att påverkas av dina uppdateringar