MySql - sposób na aktualizację części ciągu?

103

Szukam sposobu, aby zaktualizować tylko część ciągu za pośrednictwem zapytania MySQL.

Na przykład, jeśli mam 10 rekordów, z których wszystkie zawierają `` ciąg '' jako część wartości pola (tj. `` Coś / ciąg '', `` coś / ciąg znaków '', `` coś / ciąg / itd. '', Czy istnieje sposób na zmianę '' ciągu „na„ inną wartość ”dla każdego wiersza za pośrednictwem jednego zapytania, tak aby wynikiem było„ coś / inna wartość ”,„ coś / inna wartość ”,„ coś / ciąg / itd. ”, czy istnieje sposób na zmianę„ innej wartości ”

n00b0101
źródło

Odpowiedzi:

231

Myślę, że to powinno działać:

UPDATE table
SET field = REPLACE(field, 'string', 'anothervalue')
WHERE field LIKE '%string%';
Kaleb Brasee
źródło
26
UPDATE `table` SET `field` = REPLACE(`field`, 'string', 'anothervalue')
Tatu Ulmanen
źródło
14

Użyj LIKEoperatora, aby znaleźć wiersze, które Cię interesują, i zaktualizuj je za pomocą REPLACEfunkcji.

Na przykład:

UPDATE table_name SET field_name = REPLACE(field_name,'search','replace') WHERE field_name LIKE '%some_value%'
Bernard Chen
źródło
0

Czy coś takiego działa w jakikolwiek sposób?

update table_name
set column_name = replace(column_name, 'string%', 'string') 
where column_name like '%string%'
Lukas
źródło