phpMyAdmin
 sql >> Database >  >> Database Tools >> phpMyAdmin

AGGIORNAMENTO MySQL con SUBQUERY della stessa tabella

Devi usare una tabella temporanea, perché non puoi aggiornare qualcosa che usi per selezionare. Un semplice esempio:

Questo non funzionerà :

UPDATE mytable p1 SET p1.type= 'OFFER' WHERE p1.parent IN 
    (SELECT p2.id from mytable p2 WHERE p2.actu_id IS NOT NULL);

Questo farà il lavoro:

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" creerà un duplicato temporaneo della tua tabella, che non sarà influenzato dai tuoi aggiornamenti