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.

Antworten:


231

Ich denke das sollte funktionieren:

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

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

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%'

0

Funktioniert so etwas in irgendeiner Weise?

update table_name
set column_name = replace(column_name, 'string%', 'string') 
where column_name like '%string%'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.