Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] skomplikowane sortowanie
maciu
post 16.10.2006, 11:45:41
Post #1





Grupa: Zarejestrowani
Postów: 238
Pomógł: 1
Dołączył: 27.08.2003

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


Mam tabele z takimi polami
id (int)
title (char)
points (int)
date (datetime)

Chcę pobrać rekordy tej tabeli, ale odpowiednio posortowane.
Sortowanie ma się odbyć po kolumnie points, ale gdy dzien w polu date jest mniejszy niz bierzący dzień miesiąca to od kolumny point odejmuje 10 za każdy dzień.

przykładowe rekordy:
id title points date
1 naz1 20 2006-10-15
2 naz2 40 2006-10-14
3 naz3 5 2006-10-16
4 naz4 15 2006-10-16

w tym przykładzie kolejnośc powinna być taka
id points
2 20
4 15
1 10
3 5

czy da się wykonać takie sortowanue w myslq, czy muszę wykorzystać do tego php?
Go to the top of the page
+Quote Post
wijet
post 18.10.2006, 13:02:12
Post #2





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

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


Popraw mnie jeśli cos zle zrozumialem smile.gif , od daty dzisiejszej odejmujemy date z pola data i za kazdy dzien odejmujemy 10 punktow od pola pynkty

  1. SELECT id,(punkty - (curdate() - DATA)*10) AS policzone FROM tabelka ORDER BY policzone DESC;


w mysql wszystko sie da! tongue.gif (do pewnedo stopnia)


--------------------
Go to the top of the page
+Quote Post
maciu
post 18.10.2006, 17:25:06
Post #3





Grupa: Zarejestrowani
Postów: 238
Pomógł: 1
Dołączył: 27.08.2003

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


dziękuje bardzo wijet, dokładnie o to chodziło. Tylko o jednej rzeczy zapomniałeś. Trzeba jeszcze przekonwertować datę na liczbę.

  1. SELECT id,(punkty - (TO_DAYS(curdate()) - TO_DAYS(DATA))*10) AS policzone FROM tabelka ORDER BY policzone DESC;
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: 13.06.2025 - 03:37