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