Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] skomplikowane sortowanie
Forum PHP.pl > Forum > Bazy danych > MySQL
maciu
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?
wijet
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)
maciu
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;
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.