Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Zmiana części stringu po separatorze
L0k0
post
Post #1





Grupa: Zarejestrowani
Postów: 161
Pomógł: 4
Dołączył: 18.03.2011

Ostrzeżenie: (0%)
-----


Witam!

Mam takiego stringa:

Kod
xxxx|1234|yyyy|


i chciałbym aby wynik końcowy był taki:

Kod
xxxx yyyy|1234||


Zdaję sobie sprawę, że to będzie działanie dwuczęściowe: znalezienie stringa i skopiowanie go w odpowiednie miejsce, albo i trzyczęściowe: znalezienie stringa, znalezienie miejsca do skopiowania i skopiowanie w to miejsce).

W celu dokonania pierwszej części znalazłem poniższy kod:

  1. SELECT
  2. SUBSTR(Adresat,
  3. LOCATE('|', Adresat)+1,
  4. (char_length(Adresat) - LOCATE('|', REVERSE(Adresat)) - LOCATE('|', Adresat)))
  5. FROM ibank.Adresat WHERE id=107479


Jednak wynik tego kodu to:

Kod
1234|yyyy


Wybrane zostało wszystko pomiędzy zewnętrznymi separatorami. Nie wiem jak zrobić, żeby wybrać tylko string między drugim i ostatnim separatorem?

Pewnie jeśli ogarnę to to będę mógł wybrać tekst od zera do pierwszego separatora i dokleić skopiowany.

Jakby ktoś miał jakiś pomysł to z góry dziękuję.

ROZWIĄZANIE (może komuś się przyda)

Kod
SELECT Adresat,
CONCAT(
    SUBSTRING(Adresat, 1, LOCATE('|', Adresat) - 1),
    " ",
    SUBSTRING(Adresat, LOCATE('|', Adresat, (LOCATE('|', Adresat) + 1)) + 1),
    SUBSTRING(Adresat, LOCATE('|', Adresat), LOCATE('|', Adresat, (LOCATE('|', Adresat) + 1)) - (LOCATE('|', Adresat) - 1))
)
FROM ibank.Adresat WHERE id=107479


Ten post edytował L0k0 7.10.2014, 11:54:52
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 04:04