Jak zamienić dany ciag znaków innym ciągiem?

MySQL - Tips & Tricks Zostaw komentarz

Czasami istnieje potrzeba szybkiej zamiany danego ciągu znaków innym ciągiem. Załóżmy, że prowadzisz bloga. I nagle musisz we wszystkich wpisach zmienić pewien fragment tekstu (np. w tekstach często linkowałeś do innej swojej strony, ale na skutek pewnych komplikacji owa zmieniłeś nazwę domeny do strony którą linkujesz).

Pierwsze rozwiązanie jakie przyjdzie Ci do głowy to ręczne przeglądanie wpisów na blogu i ich edycja. Ale jeśli wiesz w jakiej kolumnie i w jakiej tabeli są przechowywane treści wpisów, to już prawie jesteśmy w domu.

Kiedyś chciałem napisać prosty skrypt w PHP, który sczytuje wszystkie rekordy, dokonuje odpowiedniej operacji na stringu (tj. używa PHP’owej funkcji str_replace) a następnie jeśli zmieniła się zawartość stringa jest dokonywane zapytanie update.

Jednak MySQL posiada własną funkcję o nazwie replace! Dzięki temu bez zabawy w pisanie prostych skryptów PHP można zadać zapytanie, które odwali za Ciebie czarną robotę!! Oto prosty przykład:
update tabela SET kolumna = REPLACE(kolumna, 'stary_string', 'nowy_string')
W ten bardzo prosty sposób można szybko hurtowo dokonać pewnych zmian 🙂 Wbrew pozorom dość często to się przydaje, poniżej podam kilka prostych przykładów:

  • czasami w jakimś Programie Partnerskim zmienia się format linków partnerskich. W ten sposób można szybko przelecieć linki 🙂
  • możesz zmienić np. stary e-mail na nowy we wszystkich wpisach
  • czasami w bazie danych pojawiają się „krzaki” np. na skutek jakiegoś błędu w skrypcie np. jeden ogonek (np. litera ą) jest źle zapisywany. Można spróbować użyć funkcji replace do podmiany błędnego ogonka na prawidłowy zamiast bawić się ręcznie w naprawianie 🙂

Uwaga: zanim zaczniesz używać tej niebezpiecznej funkcji zrób najpierw backup bazy danych 🙂

Tagi: , ,

Zanim dodasz komentarz, zapoznaj się z kilkoma podstawowymi zasadami:

  1. Jeśli zamiast imienia (lub pseudonimu) wpiszesz jakiś mało logiczny ciąg znaków np. asdfg, to taki komentarz zostanie usunięty.
  2. Jeśli się za kogoś podszywasz, to taki komentarz zostanie usunęty
  3. Jeśli zamiast imienia (pseudonimu) wpiszesz jakieś słowo kluczowe (np. tani hosting), to taki komentarz zostanie usunięty
  4. Jeśli Twoim jedynym celem jest zareklamowanie się, to taki komentarz zostanie niezwłocznie usunięty
  5. Komentarze nie związane z tematem notki są kasowane.
  6. Komentarze, które zawierają wulgarne słowa, bądź są obraźliwe (nie dotyczy konstruktywnej krytyki) są kasowane.
  7. Komentarze z mailem typu "nie.podam@coś.tam.pl" są kasowane
  8. Komentarze pisane niechlujnie (bez interpunkcji, w błędami ortograficznymi, z licznymi literówkami, pisane WIELKIMI LITERAMI) są kasowane

4 komentarze do “Jak zamienić dany ciag znaków innym ciągiem?”

  1. Zmiana adresu w bazie Says:

    […] adres – jeżeli nie, to funkcja replace w mysql Ci pomoże do ręcznej zmiany adresu w bazie. Jak zamienić dany ciag znaków innym ciągiem? | Pomocnik webmastera Wykonuję migrację z vB 3.x -> 4.x (wraz z edycją modyfikacji) oraz z innych systemów CMS […]

  2. Genealogia Polaków Says:

    A jak zamienić html-owy ciąg na znak nowej linii?

  3. Damian Daszkiewicz Says:

    Nie wiem, czy o to Ci chodzi, ale trzeba zamienić HTMLowy znacznik br na znak nowego wiersza: \n

  4. Genealogia Polaków Says:

    Dzięki nie byłem pewien czy to tak zadziała – czyli normalnie frazę „” na frazę „\n”

Zostaw komentarz

WordPress - Hosting: Twój hosting - Skórka: N.Design Studio - Spolszczenie: Adam Klimowski.
RSS wpisów RSS komentarzy Zaloguj się