Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> select drugiej wartosci jest pierwsza pusta
misty
post
Post #1





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


czesc, czy majac takie zapytanie:

  1. SELECT name FROM users;


da sie zrobic, w czystym sqlu cos takiego ze jesli name bedzie null lub name bedzie stringiem o dlugosci = 0, to znajdzie mi drugie pole? cos w stylu:
  1. SELECT name FROM users
  2.  
  3. ale IF name IS NULL OR name.length = 0, SELECT surname AS name


pzdr,
misty

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




IF
IFNULL
http://dev.mysql.com/doc/refman/5.0/en/con...-functions.html


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
misty
post
Post #3





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


czesc,
dzieki za odpowiedz ale ja juz z tym ifnullem kombinowalam i to mi nie dziala. Przyklad:

  1. SELECT id, ifnull( name, name2 )
  2. FROM users
  3. ORDER BY id ASC
  4. LIMIT 5


sprawdzam 'name' czy jest null. no i to mi zwraca zawsze name niezaleznie od tego czy name jest null czy nie..
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
lub name bedzie stringiem o dlugosci = 0
String o długości 0 to nie null. Dlatego podałem ci też IF.
W tym więc przypadku zamiast IFNULL masz użyć IF i w tym IF określic konkretne warunki


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
misty
post
Post #5





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


wiem ze string o dlugosci 0 to nie null!! ale ja sobie dane przygotowalam by sprawdzic czy dziala - robie update na tabeli users, ustawiam name = null where id = cos tam. ale teraz jak podgladam te tabele to widze ze pod name nie jest null tylko wlasnie ciag pusty, nic. dlaczego zatem jak robie update na polu name i wstawiam mu null - to on nie wstawia null tylko wartosci (Stringi) puste-tego nei wiem..
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
to on nie wstawia null tylko wartosci (Stringi) puste-tego nei wiem..
Ja też nie wiem, bo nie wróże z fusów.
Pokaż kod jak wkładasz tego null
Pokaż dokładną strukturę tabeli, włącznie z typami pól i czy mogą być null czy nie

Cytat
wiem ze string o dlugosci 0 to nie null!!
I czego się denerwujesz? Pisałaś ze mogą być puste teksty więc ci zwróciłem uwagę. Skąd niby miałem wiedzieć, że dla testów wszystko "ustawiłaś na null". Jak mówiłem z fusów nie wróżę. Masz błąd, to ci grzecznie wyjaśniam co jest jego przyczyną i nie widzę tu powodów by się na mnie za to denerwować.
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
misty
post
Post #7





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


no masz racje, unioslam sie troche. Ale to przez to ze zawsze mam wrazenie ze sie traktuje baby jako glupsze..
niemniej jednak - juz jest ok, polaczylam zapytanie z if i ifnull, i dziala mi dokladnie tak jak chcialam. Takze, dzieki wielkie i milego dnia!

pzdr,
misty
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ale to przez to ze zawsze mam wrazenie ze sie traktuje baby jako glupsze..
To zmień to wrażenie.
Po pierwsze: mało kto kojarzy na tym forum że ty to "baba". Większość userów zawsze o innych userach myśli że to faceci.
Po drugie: ja osobiście nie rozróżniam głupotyinteligencji po płci. Aczkolwiek zauważyłem, że tu na forum baby (jak to ty okresliłaś) są bardziej drażliwe. wink.gif

Cytat
juz jest ok, polaczylam zapytanie z if i ifnull, i dziala mi dokladnie tak jak chcialam.
No to przedstaw to rozwiązanie dla potomnych. Nie bądź samolubna smile.gif
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
misty
post
Post #9





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


glupota/inteligencja wplywu na drazliwosc nie ma.. przynamniej nie taka duza. ale plec zdecydowanie tak smile.gif

pzdr!

ano rozwiazanie:

  1. SELECT id, IF( (length( name ) =0 OR name IS NULL), name2, name ) AS name
  2. FROM users
  3.  


zrobilam tak, bo jak dawalam wpierw if, a potem drugi warunek z ifnull to zwracal mi 2 wartosci - tzn wynik dla if'a oraz wynik dla ifnull'a. a tak mam tak jak chcialam. sprawdza dlugosc oraz czy jest nullem i zwraca albo name albo name2. dziala ok.
Go to the top of the page
+Quote Post

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: 20.08.2025 - 17:49