PDA

Visualizza la versione completa : Update su porzione di tabella risultato di una query


riccardo1975
19-03-2020, 20:03
Ho la tabella denominata "tabella";

id|campo1|campo2|
1|aaaaaaa|aaaaaa|
2|bbbbbbb|bbbbbb|
3|cccccccc|ccccccc|
4|ddddddd|dddddd|
5|eeeeeee|eeeeeee|
6|ffffffffff|fffffffff|
7|ggggggg|ggggggg|
8|hhhhhhh|hhhhhhh|
9|iiiiiiiiiiii|iiiiiiiiiiii|
10|llllllllll|llllllllllll|
11|mmmmmm|mmmmmm|

Con la query "SELECT id,campo1,campo2 FROM tabella ORDER BY id ASC LIMIT 0, 5":
estraggo la porzione di dati che mi interessano e cioč:

1|aaaaaaa|aaaaaa|
2|bbbbbbb|bbbbbb|
3|cccccccc|ccccccc|
4|ddddddd|dddddd|
5|eeeeeee|eeeeeee|

ebbene, vorrei fare una update che mi modifiche tutti i valori di questa sola porzione di tabella

Ho provato a fare una cosa tipo questa e alcune sue varianti:stordita::

UPDATE (SELECT id,campo1,campo2 FROM tabella ORDER BY id ASC LIMIT 0, 5) SET campo2 = 'OOOOOK'

Ovviamente non funziona.

E.d.i.73
20-03-2020, 00:06
Ciao prova in questo modo:



UPDATE prova SET campo2='nuovo_valore' WHERE id IN ( SELECT id FROM (SELECT id FROM prova ORDER BY id ASC LIMIT 0, 5 ) tmp)

nman
20-03-2020, 09:12
Ho la tabella denominata "tabella";
UPDATE (SELECT id,campo1,campo2 FROM tabella ORDER BY id ASC LIMIT 0, 5) SET campo2 = 'OOOOOK'

Ovviamente non funziona.
Non ci hai detto il DB, ma, considerato che usi "LIMIT" desumo si tratti di MySql
La tua query non č sbagliata a livello di principio ..... :) .....
direi che se ci aggiungi un allias funziona .....
pero con MySql non posso testarla,

UPDATE (SELECT id,campo1,campo2 FROM tabella ORDER BY id ASC LIMIT 0, 5) AS Xyz SET Xyz.campo2 = 'OOOOOK'
.

Loading