Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: select drugiej wartosci jest pierwsza pusta
Forum PHP.pl > Forum > Bazy danych > MySQL
misty
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

misty
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..
nospor
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
misty
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..
nospor
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ć.
misty
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
nospor
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
misty
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.
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.