Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] zapytanie ostatnie wydarzenie
JaKo
post 20.03.2008, 14:21:22
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 29.09.2005

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


Witam, mam problem w dobraniu poprawnego zapytania wybierającego ostatnie wydarzenie z danego miesiąca. Kolumny są następujące: day, month i year. Próbowałem tak:

  1. SELECT *
  2. FROM calendar WHERE (`month` = '$month' || `month` = '*') AND (`year` <= '$year' || `year` = '*') AND `day` < '$day'
  3. ORDER BY `year`, `month`, `day` DESC LIMIT 0, 50


Ale zapytanie nie działa tak jak chce. Dla wyjaśnienia: * oznacza corocznie/comiesięcznie, zmienne to dane na dziś.
1) zapytanie źle sortuje wyniki: chce, żeby wyświetlało posortowane najpierw przez rok, poźniej miesiąc, później dzień malejąco, a ono wyświetla jak chce - jeżeli dobrze by sortowało wystarczy dodać LIMIT 1 i mamy ostatnie wydarzenie,
2) nie dodaję limitu, a ono wyświetla tylko jedno wydarzenie, choć dodanych jest kilka na dany miesiąc, czyli coś jest nie tak.

Jeżeli ktoś zauważył, gdzie wkradł się błąd, albo zna lepsze rozwiązanie tego problemu - proszę o odpowiedź.
Z góry dzięki, JaKo.
Go to the top of the page
+Quote Post
Sławo
post 20.03.2008, 14:53:02
Post #2





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 10.03.2008
Skąd: Łódź

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


Hmm nie wiem czy to będzie dobre ale błąd wkradł się wg mnie w zapytaniu o dzień

  1. SELECT *
  2. FROM calendar WHERE (`year` <= '$year' || `year` = '*') AND (`month` <= '$month' || `month` = '*') AND (`day` <= '$day' || `day` = '*')
  3. ORDER BY `year`, `month`, `day` DESC LIMIT 1


Ten post edytował Sławo 20.03.2008, 14:54:33


--------------------
zmoderowano
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.06.2025 - 23:02