Podsumowanie: W tym tutorialu pokażemy jak używać funkcji MySQL REPLACE String do zamiany podłańcucha na inny w łańcuchu znaków.
Wprowadzenie do funkcji łańcuchowej MySQL REPLACE
MySQL udostępnia użyteczną funkcję łańcuchową o nazwie REPLACE, która pozwala na zastąpienie łańcucha w kolumnie tabeli nowym łańcuchem.
Składnia funkcji REPLACE jest następująca:
Code language: SQL (Structured Query Language) (sql)REPLACE(str,old_string,new_string);
Funkcja REPLACE ma trzy parametry. Zastępuje ona old_string przez new_string w string
Zauważ, że istnieje oświadczenie zwane również REPLACE używane do wstawiania lub aktualizowania danych. Nie należy mylić instrukcji REPLACE z funkcją REPLACE string.
Funkcja REPLACE jest bardzo przydatna do wyszukiwania i zastępowania tekstu w tabeli, np. aktualizowania nieaktualnych adresów URL, poprawiania błędów ortograficznych itp.
Składnia użycia funkcji REPLACE w instrukcji UPDATE jest następująca:
Code language: SQL (Structured Query Language) (sql)UPDATE tbl_name SET field_name = REPLACE(field_name, string_to_find, string_to_replace)WHERE conditions;
Zauważ, że podczas wyszukiwania tekstu do zastąpienia, MySQL używa dopasowania uwzględniającego wielkość liter, aby wykonać wyszukiwanie łańcucha do zastąpienia.
Przykład funkcji MySQL REPLACE string
Na przykład, jeśli chcesz poprawić błąd w pisowni w tabeli products w przykładowej bazie danych, używasz funkcji REPLACE w następujący sposób:
Code language: SQL (Structured Query Language) (sql)UPDATE products SET productDescription = REPLACE(productDescription, 'abuot', 'about');
Kwerenda wyszukuje wszystkie wystąpienia błędu ortograficznego abuot i zastępuje go poprawnym słowem about w kolumnie productDescription w tabeli products.
Bardzo ważne jest zwrócenie uwagi na to, że w funkcji REPLACE pierwszym parametrem jest nazwa kolumny bez cudzysłowów („). Jeśli umieścisz cudzysłów do nazwy pola, jak „field_name”, zapytanie zaktualizuje zawartość tej kolumny do „field_name”, co powoduje nieoczekiwaną utratę danych.
Funkcja REPLACE nie obsługuje wyrażeń regularnych, więc jeśli potrzebujesz zastąpić ciąg tekstowy wzorcem, musisz użyć funkcji zdefiniowanych przez użytkownika MySQL (UDF) z zewnętrznej biblioteki, sprawdź tutaj MySQL UDF z Regex
- Czy ten poradnik był pomocny?
- TakNie