![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 415 Pomógł: 0 Dołączył: 24.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Mam instrukcję, która prawidłowo pobiera dane z bazy:
ale może się tak zdażyć, że e.Nr_czyt może być równy 0 wtedy cała instrukcja nie działa :-(, bo nieprawidłowo pobierze c.Nr_czyt, c.Imie z tabeli czyteln... Jak zrobić to, żeby np. zwracał cyfrę 0 w c.Nr_czyt, c.Imie? Jak tu wstawić warunek, że jak e.Nr_czyt=0 wtedy zrób c.Nr_czyt-0 i c.Imie=0? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Poczytaj dokumentację:
http://dev.mysql.com/doc/refman/5.0/en/con...-functions.html Jeśli nadal będziesz miał problem - podaj w jaki sposób próbowałeś wykorzystać IF. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 415 Pomógł: 0 Dołączył: 24.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Kompletnie nie wiem jak to ugyźć...
Daję coś takiego ale nie działa :-(:
lub coś takiego ale też nie działa:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 43 Dołączył: 9.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Skoro jak sam napisałeś nie ma odpowiedniego rekordu w tabeli `czyteln` dla e.Nr_czyt=0, więc LEFT JOIN zamiast JOIN w pierwszym zapytaniu co podałeś. Jeśli nie będzie odpowiedniego rekordu w odpowiednich polach będziesz miał NULL, dodatkowo źle stosujesz IFNULL, powinno być:
skoro chcesz mieć 0 jeśli c.Nr_czyt jest NULL |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 415 Pomógł: 0 Dołączył: 24.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Już poprawiłem IFNULL ale dalej zwraca mi błędy:
Odpowiedź z Firebug: "Could not execute query.Something is wrong in your syntax obok '.Imie, IFLULL(c.Nr_czyt,0) AS c.Nazwisko FROM egzempl AS e JOIN czyteln AS c ON ' w linii 1" |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Nie IFLULL, tylko IFNULL.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 415 Pomógł: 0 Dołączył: 24.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
No jasne - przegapiłem to
![]() Ale dalej nie działa: Could not execute query.Something is wrong in your syntax obok '.Imie, IFNULL(c.Nr_czyt,0) AS c.Nazwisko FROM egzempl AS e JOIN czyteln AS c ON ' w linii 1 Nie działa zarówno JOIN jak i LEFT JOIN... |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 18.03.2011 Skąd: R do M / Sanniki Ostrzeżenie: (0%) ![]() ![]() |
hmm.... jak widzisz używasz tych samych nazw c.imie, c.nazwisko tak napewno nie bedzie działać
pomysłęm jest case
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
NIe: IFLULL(c.Nr_czyt,0) AS c.Imie
a: IFLULL(c.Nr_czyt,0) AS Imie Odróżniaj aliasy od pól tabel -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 415 Pomógł: 0 Dołączył: 24.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Tak to zrobiłem i działa :-) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 20:36 |