MySql - Möglichkeit, einen Teil eines Strings zu aktualisieren?

103

Ich suche nach einer Möglichkeit, nur einen Teil eines Strings über eine MySQL-Abfrage zu aktualisieren.

Wenn ich beispielsweise 10 Datensätze habe, die alle "Zeichenfolge" als Teil des Feldwerts enthalten (dh "etwas / Zeichenfolge", "etwas / Zeichenfolge", "etwas / Zeichenfolge / etcetera", gibt es eine Möglichkeit, "Zeichenfolge" zu ändern 'zu' einem anderen Wert 'für jede Zeile über eine Abfrage, so dass das Ergebnis' etwas / ein anderer Wert ',' etwas / ein anderer Wert irgendwo ',' etwas / Zeichenfolge / etcetera 'ist, gibt es eine Möglichkeit,' einen anderen Wert 'zu ändern.

n00b0101
quelle

Antworten:

231

Ich denke das sollte funktionieren:

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

Verwenden Sie den LIKEOperator, um die Zeilen zu finden, die Sie interessieren, und aktualisieren Sie sie mithilfe vonREPLACE Funktion.

Beispielsweise:

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

Funktioniert so etwas in irgendeiner Weise?

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