Il problema in oggetto lo abbiamo se cerchiamo di fare una query di questo tipo:
UPDATE MYTABLE SET COL=COL+1 WHERE ID IN (SELECT ID FROM MYTABLE WHERE OTHERCOL=0)
In pratica stiamo cercando di fare una query di update (o di delete), selezionando le righe tramite una query di select sulla stessa tabella. La cosa potrebbe essere perfettamente lecita (almeno se la query di select non si basa su colonne modificate dalla query di update), ma MYSQL ce la blocca comunque.
E' possibile aggirare il controllo di mysql cammuffando la query di select con una ulteriore subquery:
UPDATE MYTABLE SET COL=COL+1 WHERE ID IN (SELECT * FROM (SELECT ID FROM MYTABLE WHERE OTHERCOL=0) _alias)
1 Comment
grazie
Inviato da Antonio (non verificato) il
Aggiungi un commento