Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Instrukcja warunkowa?
Krisu
post
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

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


Witam,
dawno mnie nie było na tym forum, ale pojawił się problemik i byłbym rad, gdybyście mi coś doradzili w tej sprawie.

Mam bazę z testami, użytkownik rozwiązuje najpierw jeden test a potem drugi, ale wszystko jest oparte na troszkę niezaplanowanej bazie danych.
Musiałem to wszystko zrobić w jednym zapytaniu gdyż zależy mi na sortowaniu i wyciągnięciu na raz wszystkich potrzebnych danych. Zapytanie w 100% działa jednak jeśli nie znajdzie, któregoś z testów (uczestnik go jeszcze nie rozwiązał) to zwraca null, a przez to gdy dodaję w zapytaniu wartości z obu testów to niestety nie zlicza mi ich, co jest logiczne. Moje pytanie brzmi tak:

Jak zrobić, żeby za wartość null zapytanie przyjmowało 0? (IMG:style_emoticons/default/smile.gif)
Zastanawiałem się nad wrzuceniem warunku, że jeśli null to 0 ale może doradzicie coś odpowiedniejszego? Nie wiem też jak miałbym to zaimplementować (IMG:style_emoticons/default/smile.gif)

  1. SELECT user.uid, user.name, user.surname,
  2.  
  3. (SELECT points FROM results WHERE tid = '$active_tid1' AND uid = user.uid) points,
  4. (SELECT exam_sec FROM results WHERE tid = '$active_tid1' AND uid = user.uid) exam_sec,
  5. (SELECT points FROM results WHERE tid = '$active_tid2' AND uid = user.uid) points2,
  6. (SELECT exam_sec FROM results WHERE tid = '$active_tid2' AND uid = user.uid) exam_sec2,
  7.  
  8. ((SELECT points FROM results WHERE tid = '$active_tid1' AND uid = user.uid) + (SELECT points FROM results WHERE tid = '$active_tid2' AND uid = user.uid)) punkty,
  9. ((SELECT exam_sec FROM results WHERE tid = '$active_tid1' AND uid = user.uid) + (SELECT exam_sec FROM results WHERE tid = '$active_tid2' AND uid = user.uid)) czasy
  10.  
  11. FROM user WHERE user.auth = '1' AND user.active = '1' ORDER BY (points+points2) DESC, (exam_sec+exam_sec2) ASC
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
zaajcu
post
Post #2





Grupa: Zarejestrowani
Postów: 206
Pomógł: 3
Dołączył: 18.08.2011
Skąd: Chrzanów

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


ja bym przerobil to zapytanie na join'y a do sumowanie żeby zamienić null na 0 to możesz użyć ifnull()

http://dev.mysql.com/doc/refman/5.0/en/con...function_ifnull

np
select sum(2+IFNULL(null, 0) )
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 - 15:10