2009-12-09 10 views
79

Sto cercando un modo per aggiornare solo una parte di una stringa tramite query MySQL.MySql - Modo per aggiornare parte di una stringa?

Ad esempio, se ho 10 record tutti contenenti 'string' come parte del valore del campo (cioè 'qualcosa/stringa', 'qualcosa/stringlookhere', 'qualcosa/stringa/eccetera', c'è un modo per cambiare 'string' a 'anothervalue' per ogni riga tramite una query, in modo che il risultato sia 'something/anothervalue', 'something/anothervaluelookhere', 'something/string/etcetera', c'è un modo per cambiare 'anothervalue'

+0

Eventuali duplicati di [MySQL ricerca e sostituzione del testo in un campo] (http://stackoverflow.com/questions/125230/mysql -search-and-replace-some-text-in-a-field) –

risposta

169

Penso che questo dovrebbe funzionare:

UPDATE table SET field = REPLACE(field, 'string', 'anothervalue') WHERE field LIKE '%string%'; 
+1

Certo ... grazie ... C'era una volta, sapevo di questa funzione ... stupida influenza. – n00b0101

+1

fantastico compagno, tu mi hai salvato tutto il giorno –

+1

PERFETTO !! Mi hai salvato la giornata! –

22
UPDATE `table` SET `field` = REPLACE(`field`, 'string', 'anothervalue') 
9

utilizza l'operatore LIKE per trovare le righe che ti stanno a cuore e aggiornarle utilizzando la funzione di REPLACE.

Per esempio:

UPDATE table_name SET field_name = REPLACE(field_name,'search','replace') WHERE field_name LIKE '%some_value%' 
+0

FYI: codice> spiegazione, ma entrambi sono ideali. –

Problemi correlati