Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z zapytaniem substring_index
tmk7
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 18.06.2009

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


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

Ten post edytował tmk7 20.10.2010, 12:59:25
Go to the top of the page
+Quote Post
Fantazyn
post
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 38
Dołączył: 24.02.2007
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


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;


Ten post edytował Fantazyn 20.10.2010, 14:05:07
Go to the top of the page
+Quote Post
tmk7
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 18.06.2009

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


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!

Ten post edytował tmk7 20.10.2010, 14:30:45
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 04:06