Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] WHERE IF
Forum PHP.pl > Forum > Przedszkole
desavil
Witajcie!

Tak jak w temacie, chcę w zapytaniu SQL, w klauzuli WHERE wprowadzić if'a - zapytanie wygląda następująco:
  1. SELECT COUNT(`id`) AS `numrows`, `date` FROM `history` WHERE `user`=1 ORDER BY `id` DESC LIMIT IF(numrows=0, 1, '1,1');

Zapytania miałby działać w taki sposób: Jeżeli rekordów jest 0 to LIMIT wynosi 1, a w przeciwnym razie LIMIT wynosi 1,1.
Niestety coś tutaj jest źle i zapytanie nie działa poprawnie, kombinowałem z tym ale nie chce działać pomimo szukania przykładów i rozwiązania w internecie.

Pozdrawiam.
vermis
Nie da się tak zrobić. Przede wszystkim wartość count'a zależy również od limitu, więc limit nie może zależeć od count'a.
desavil
Dzięki za odpowiedź.

W takim razie chyba będę zmuszony zrobić dwa zapytania.
Tutaj chciałem osiągnąć to, że podczas każdego logowania użytkownika jest dodawany rekord do bazy z datą logowania.
To zapytanie ma za zadanie wyświetlać ostatnie logowanie do konta (LIMIT 1,1), jeżeli ktoś się zalogował pierwszy raz to wyświetla pierwsze logowanie (LIMIT 1).

Może macie jakieś propozycje jak to zrobić w jednym zapytaniu?
b4rt3kk
Jeśli ma wyświetlić ostatnie logowanie to na cholerę kombinować tak z tym limit? Posegreguj po dacie i po sprawie... Na co tu w ogóle liczyć cokolwiek?

  1. SELECT date FROM history WHERE user=1 ORDER BY date DESC LIMIT 0,1
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.