2009-12-09 14 views
79

Szukam sposobu, aby zaktualizować tylko część ciągu za pomocą kwerendy MySQL.MySql - sposób na aktualizację części ciągu znaków?

Na przykład, jeśli mam 10 rekordów zawierających ciąg "string" jako część wartości pola (np. "Coś/ciąg", "coś/stringlookhere", "coś/ciąg/etcetera", czy istnieje sposób aby zmienić "ciąg" na "inną wartość" dla każdego wiersza za pomocą jednego zapytania, tak aby wynik był "coś/inna wartość", "coś/anothervaluelookhere", "coś/ciąg/etcetera", czy istnieje sposób na zmianę "innej wartości"

+0

Możliwy duplikat [MySQL wyszukać i zamienić tekst w polu] (http://stackoverflow.com/questions/125230/mysql -wyszukaj-i-zamień-trochę-tekstu-w-polu) –

Odpowiedz

169

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

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

Oczywiście ... dziękuję ... Dawno, dawno temu, wiedziałem o tej funkcji ... głupiej grypie. – n00b0101

+1

wspaniały kolego, oszczędzasz cały mój dzień –

+1

PERFECT !! Uratowałeś mój dzień! –

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

Użyj operatora LIKE znaleźć wiersze, które dbają o ich aktualizacji i korzystania z funkcji REPLACE.

Na przykład:

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

FYI: kod> wyjaśnienie, ale oba są idealne. –

Powiązane problemy