[ biske86 @ 01.08.2010. 12:51 ] @
Pročitao sam uputstvo u zvaničnoj dokumentaciji vezano za rad sa NULL vrednostima. Nisam siguran za jednu stvar pa rekoh bolje je da pitam nego da pogrešim. Naime imam upit:

Code (sql):
SELECT * INTO v_sesijaid
FROM sesija
WHERE korisnikid=p_korisnikid;



IF !(isnull(v_sesijaid)) THEN
...


Ovim kodom hoću da proverim da li postoji red sa datim p_korisnikid. Interesuje me kako to da proverim. Da li preko ovog uslova isnull(v_sesijaid) ili možda v_sesijaid=''. Pretpostavljam da je ovaj prvi način ali opet ne znam kako se mysql ponaša u ovim situacijama.
[ bogdan.kecman @ 01.08.2010. 16:07 ] @
kako mislis "kako se ponasa"? ponasa se tako da ce ti is_null(x) vratiti true ako je x null, null i prazan string ('') nisu isto.
[ biske86 @ 01.08.2010. 16:22 ] @
Izvini, nisam se lepo izrazio. Da li je ovaj kod ispravan ako hoću da proverim da li postoji red sa datim p_korisnikid? Moje pitanje se ne odnosi na funkciju ISNULL već na način na koji mysql vraća rezultat izvršavanja upita. Ukoliko je skup podataka prazan onda bi trebalo da mi vrati NULL za v_sesijaid. Da li je ispravno ovo tvrđenje?
[ Shinhan @ 02.08.2010. 07:25 ] @
Citat:
biske86: Izvini, nisam se lepo izrazio. Da li je ovaj kod ispravan ako hoću da proverim da li postoji red sa datim p_korisnikid? Moje pitanje se ne odnosi na funkciju ISNULL već na način na koji mysql vraća rezultat izvršavanja upita. Ukoliko je skup podataka prazan onda bi trebalo da mi vrati NULL za v_sesijaid. Da li je ispravno ovo tvrđenje?


Ne.

Ako ne postoji red, onda se on neće vratiti.

Koristi mysql_num_rows (PHP funkcija, ne znam koji jezik koristiš) da vidiš koliko redova ima u rezultatu, ako ima 0 redova onda nije nađen takav korisnik.
[ bogdan.kecman @ 02.08.2010. 09:21 ] @
ovo je unutrar stored procedure ... tako da mora count(*) ..

sto se tice null i '' - ja ne vidim nikakav razlog da u toj tabeli ikad imas slog sa '' ili null za korisnikid ..


dakle nesto tipa

SELECT COUNT(*) INTO v_sesijaid ...