Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sortowanie zapytania
Goliat
post 1.10.2003, 18:24:02
Post #1





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

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


Strona wygląda jak terminarz. Kiedy użytkownik na nią wchodzi z tabeli wyszukiwane są wszystkie sprawy na dzień dzisiejszy. Aktualna godzina musi znaleźć się jako pierwsza, później w kolejności rosnącej.
Na MsSQL jest taki patent:
[sql:1:f3205f3058] SELECT Pole1, godz FROM Tbl
ORDER BY CASE godz WHEN Hour(getdate()) THEN -1 ELSE godz END[/sql:1:f3205f3058]
zamieniając aktualną godzinę na -1 i sortując rosnąco całość układa się tak jak bym chciał.

Próbowałem jakoś tak:
[sql:1:f3205f3058]SELECT Pole1, godz FROM Tbl
ORDER BY ABS(godz-Hour(Now())
[/sql:1:f3205f3058]
Różnica tych samych wartości da zero a reszta będzie miała wartość dodatnią. ABS-wartość bezwzględna.
Tak sobie to wymyślałem ...

Jak wygląda funkcja CASE (czy wogóle jest) w MySql?
Czy wiecie jak uzyć ABS?
Czy ktoś miał podobny problem i jakoś go obszedł?


--------------------
------
"Nienawiść jest cnotą"
Ahron z rodu Blood Dragonów
Go to the top of the page
+Quote Post
uboottd
post 1.10.2003, 19:49:23
Post #2





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

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


[sql:1:14d5e79199]
SELECT Pole1, godz
FROM Tbl
ORDER BY godz DESC
[/sql:1:14d5e79199]
Go to the top of the page
+Quote Post
Goliat
post 1.10.2003, 20:00:18
Post #3





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

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


Proponowane sortowanie malejące będzie wyswietlało listę dla godziny 23:00.
Wynik ma wyglądać mniej więcej dla godziny 20:nn
+-------------+
| godz |
+-------------+
| 20 |
| 1 |
| 2 |
....
| 19 |
| 21 |
| 22 ....
użycie DESC da wynik 23, 22, 21, 20, 19 ...


--------------------
------
"Nienawiść jest cnotą"
Ahron z rodu Blood Dragonów
Go to the top of the page
+Quote Post
uboottd
post 1.10.2003, 20:22:59
Post #4





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

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


[sql:1:d3d5d3244a]
SELECT Pole1, godz
FROM Tbl
ORDER BY if(godz=hour(now()),0,1),godz
[/sql:1:d3d5d3244a]
Go to the top of the page
+Quote Post
Goliat
post 1.10.2003, 20:26:42
Post #5





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

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


Bym na to nie wpadł ...
Dzięki.


--------------------
------
"Nienawiść jest cnotą"
Ahron z rodu Blood Dragonów
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: 19.07.2025 - 11:21