Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapytaniem substring_index
Forum PHP.pl > Forum > Bazy danych > MySQL
tmk7
Witam

Mam mały problem z zapytaniem. Tabela wygląda tak:

address | goto
_________________________________________
adres1@domena.pl | adres2@domena.pl
adres7@domena.pl | adres22@domena.pl,adres44@domena.pl
adres6@domena.pl | adres231@domena.pl
adres9@domena.pl | adres233@domena.pl,adres232@domena.pl,adres44@domena.pl

Otóż chciałbym wyciągnąć z pola goto ostatnią wartość poprzedzoną przecinkiem a jeśli nie ma przecinka w tym polu ma być wyciągnięta pojedyncza wartość.
I tak chciałbym otrzymać:

adres2@domena.pl
adres44@domena.pl
adres231@domena.pl
adres44#domena.pl

Próbuję poleceniem:

  1. SELECT substring_index(goto,',',+1) FROM alias


dostaje faktyczną ostatnią wartość z kolumny ale pominięte są rekordy, gdzie nie występuje przecinek.

Zapytanie musi składać się z jednego polecenia.


Z góry dziękuje za pomoc
Fantazyn
Spróbuj:

  1. SELECT case when (instr(goto,',') > 0) then substr(goto,instr(goto,',')+1) else goto END FROM alias;



//edit: ostatni

  1. SELECT case when (instr(goto,',') > 0) then substr(goto,(length(goto)-locate(',',reverse(goto))+2)) else goto END FROM alias;
tmk7
Miej wiecej o to chodzi, ale nadal dostaje puste rekordy w obu poleceniach, tzn sa puste wsrod prawidłowych ktore mają przecinek. To samo zwracał substring_index()

Trzeba brać pod uwagę, że w nie wszystkich rekordach jest przecinek.


OK, polecenia działają. Miałem wsrod ok 3 tys rekordów kilka pustych i to nie zmyliło.

Dzięki bardzo!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.