MySql - Comment mettre à jour une partie d'une chaîne?

103

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 'string' dans le cadre de la valeur du champ (c'est-à-dire 'quelque chose / chaîne', 'quelque chose / stringlookhere', 'quelque chose / string / etcetera', y a-t-il un moyen de changer 'string 'à' une autre valeur 'pour chaque ligne via une requête, de sorte que le résultat soit' quelque chose / une autre valeur ',' quelque chose / une autre valeur regarde ici ',' quelque chose / chaîne / etcetera ', y a-t-il un moyen de changer' une autre valeur '

n00b0101
la source

Réponses:

231

Je pense que cela devrait fonctionner:

UPDATE table
SET field = REPLACE(field, 'string', 'anothervalue')
WHERE field LIKE '%string%';
Kaleb Brasee
la source
26
UPDATE `table` SET `field` = REPLACE(`field`, 'string', 'anothervalue')
Tatu Ulmanen
la source
14

Utilisez l' LIKEopérateur pour trouver les lignes qui vous intéressent et mettez-les à jour à l'aide duREPLACE fonction.

Par exemple:

UPDATE table_name SET field_name = REPLACE(field_name,'search','replace') WHERE field_name LIKE '%some_value%'
Bernard Chen
la source
0

Est-ce que quelque chose comme ça fonctionne d'une manière ou d'une autre?

update table_name
set column_name = replace(column_name, 'string%', 'string') 
where column_name like '%string%'
Lukas
la source