2009-12-09 7 views
79

Je cherche un moyen de mettre à jour juste une partie d'une chaîne via une requête MySQL. Par exemple, si j'ai 10 enregistrements contenant tous une 'chaîne' dans la valeur du champ (par exemple, 'quelque chose/chaîne', 'quelque chose/stringlookhere', 'quelque chose/chaîne/etcetera', y a-t-il un moyen? changer 'string' en 'autrevaleur' ​​pour chaque ligne via une requête, de sorte que le résultat soit 'quelque chose/une autrevaleur', 'quelque chose/autrevaluelookhere', 'quelque chose/chaîne/etcetera', est-il possible de changer 'autrevaleur'MySql - Façon de mettre à jour une partie d'une chaîne?

+0

double possible de [MySQL rechercher et remplacer du texte dans un champ] (http://stackoverflow.com/questions/125230/mysql -search-and-replace-some-text-in-a-field) –

Répondre

169

Je pense que cela devrait fonctionner:

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

Bien sûr ... merci ... Il était une fois, je connaissais cette fonction ... une grippe stupide. – n00b0101

+1

copain génial, vous économisez toute ma journée –

+1

PARFAIT !! Tu as sauvé ma journée! –

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

Utilisez l'opérateur LIKE pour trouver les lignes que vous vous souciez et mettre à jour les en utilisant la fonction REPLACE.

Par exemple:

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

FYI: code> explication, mais les deux sont idéaux. –

Questions connexes