U moet een tijdelijke tabel gebruiken, omdat u iets dat u gebruikt om te selecteren niet kunt bijwerken. Een eenvoudig voorbeeld:
Dit werkt niet :
UPDATE mytable p1 SET p1.type= 'OFFER' WHERE p1.parent IN
(SELECT p2.id from mytable p2 WHERE p2.actu_id IS NOT NULL);
Dit zal het werk doen:
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);
"from (SELECT * FROM mytable) p2" zal een tijdelijke duplicaat van uw tabel maken, die niet wordt beïnvloed door uw updates