Polecenie zastępujące ciąg znaków w bazie danych MySQL lub MariaDB

Każdy, kto zarządza bazą danych MySQL lub MariaDB, w pewnym momencie spotkał się z potrzebą rekurencyjnego zastąpienia lub usunięcia ciągu znaków w wierszach bazy danych. Zwykle tego typu rzeczy robi się za pomocą skryptów specjalnie stworzonych do rozwiązania tego problemu, ale jest też znacznie szybszy sposób na zrobienie tego.

Ważne jest, abyś przed przystąpieniem do czytania i stosowania tego artykułu, wiedział czym jest baza danych, czy możesz dostać ją w swoje ręce i czy robisz kopię bezpieczeństwa. Łatwo jest popełnić błędy, które mogą siać spustoszenie przy użyciu tego systemu, ponieważ możesz być w stanie zapomnieć o czymś lub użyć symboli wieloznacznych w niewłaściwy sposób.

Ten artykuł powstał jako przypomnienie dla tych, którzy już wiedzą, jak dostać się w swoje ręce w bazie danych przy użyciu odpowiednich narzędzi i klientów..

Polecenie, o którym mowa to REPLACE i w tym przypadku może być stosowane w połączeniu z poleceniem UPDATE. Ogólna składnia polecenia to:


USE database_name;
UPDATE table_name set column_name=REPLACE(column_name,'text to search','new text');
.

Do polecenia można również dołączyć klauzulę WHERE, która służy do ograniczenia liczby przeszukiwanych rekordów do takiej, jaka jest nam naprawdę potrzebna.

Aby wyjaśnić tę koncepcję, podam poniżej przykład. Załóżmy, że w niektórych wierszach naszej bazy danych przypadkowo umieściliśmy tekst zaczynający się od spacji. Gdybym chciał usunąć spację na początku każdego wiersza, w którym została ona wstawiona przez pomyłkę, napisałbym:

UPDATE table_name set column_name=REPLACE(column_name,' ','') WHERE column_name LIKE ' %';.


W tym przypadku szukanym znakiem jest spacja i należy ją zastąpić niczym, czyli dwoma indeksami górnymi obok siebie bez spacji. Klauzula WHERE w przykładzie mówi, że podstawienie powinno być dokonane tylko w wierszach zaczynających się od spacji. Proszę zauważyć, że znak procentu, który jest używany jako symbol wieloznaczny, nie następuje w tym przypadku po pierwszym cudzysłowie, ponieważ nie szukamy wszystkich spacji w łańcuchach, lecz tylko spacji na początku łańcucha.

Jeśli coś jest dla Ciebie niejasne, napisz o tym w komentarzu, a ja z przyjemnością odpowiem na wszelkie pytania. Bądź grzeczny i postaraj się nie narobić bałaganu!


Komentarz można zostawić jako zarejestrowany użytkownik serwisu, uzyskując dostęp poprzez sieci społecznościowe, konto wordpress lub jako użytkownik anonimowy. Jeśli chcesz zostawić komentarz jako anonimowy użytkownik, zostaniesz powiadomiony e-mailem o możliwej odpowiedzi tylko wtedy, gdy podasz swój adres e-mail (opcjonalnie). Włączenie jakichkolwiek danych do pól komentarza jest całkowicie opcjonalne. Każdy, kto zdecyduje się na wprowadzenie jakichkolwiek danych, akceptuje ich traktowanie w celach związanych z usługą lub w odpowiedzi na komentarz i komunikację, co jest absolutnie konieczne.


Zostaw Komentarz