Simple Machines Community Forum

SMF Support => Language Specific Support => Italiano (Italian) => Topic started by: Tanakino on January 23, 2013, 06:30:25 AM

Title: Modificare un valore nel db in batch
Post by: Tanakino on January 23, 2013, 06:30:25 AM
Ciao a tutti !


Come posso fare con una istruzione sql a variare un dato che compare in molte tabelle ?

Facciamo un esempio : poniamo che un utente ha aperto un topic con un errore ad esempio "Gita in alta montaNia" ( anzichè montagna ) .

Ora la stringa "montania" è finita in varie tabelle ( pretty url, log, ecc.. ) .

Come posso con una istruzione dire : cerca il termine "montania" in tutto il db e dove lo incontri, modificalo con "montagna" .


Grazieeee !!


T.
Title: Re: Modificare un valore nel db in batch
Post by: emanuele on January 23, 2013, 08:00:26 AM
Nope. O almeno niente di facile.
Devi entrare in ogni tabella e modificare.
Title: Re: Modificare un valore nel db in batch
Post by: Tanakino on January 23, 2013, 08:09:28 AM
Ciao Emanuele e grazie .

Una volta individuate le tabelle in cui ricorre la stringa, come posso fare ? Quale è l'istruzione sql per cercare il termine nella tabella e variarlo ?

Grazie !



T.
Title: Re: Modificare un valore nel db in batch
Post by: emanuele on January 23, 2013, 08:20:32 AM
Se è un solo record usa il pulsante modifica di phpmyadmin e vai tranquillo.
Se sono "molti":
Code: [Select]
UPDATE smf_tabella
SET colonna = REPLACE(colonna, 'vecchio testo', 'nuovo testo')
WHERE 1=1
Title: Re: Modificare un valore nel db in batch
Post by: Tanakino on January 26, 2013, 09:23:50 AM
Grazie Emanuele,

posso chiederti cosa significa il Where 1 = 1 ? perchè è necessario e cosa mette in paragone ?


Grazie.

T.
Title: Re: Modificare un valore nel db in batch
Post by: emanuele on January 26, 2013, 12:36:14 PM
Niente, è come dire fallo per tutti i campi.
Di fatto il where può anche essere tralasciato in questo caso, è l'abitudine... ;)
Title: Re: Modificare un valore nel db in batch
Post by: Tanakino on January 27, 2013, 12:17:16 PM
Niente, è come dire fallo per tutti i campi.
Di fatto il where può anche essere tralasciato in questo caso, è l'abitudine... ;)

Grazie Emanuele !


T.