I am working with a complex MySQL database table that collects form data. I have simplified the layout in an example table called test below:
You have to use a temporary table, because you can't update something you use to select. A simple exemple:
This will not working :
UPDATE mytable p1 SET p1.type= 'OFFER' WHERE p1.parent IN
(SELECT p2.id from mytable p2 WHERE p2.actu_id IS NOT NULL);
This will do the job:
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" will create a temporary duplicate of your table, wich will not be affected by your updates