Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie z pominięciem niektórych rekordów
Forum PHP.pl > Forum > Bazy danych
Manwe89
Chciałbym pobrać z bazy pewne dane wg pola: termin (date)

no i teraz mam problem... chciałbym, aby to było rosnąco. No ale jeśli nie ma podanego jeszcze jakiegoś terminu to w bazie zapisuje mi się data: 0000-00-00 i zapytanie:
  1. SELECT * FROM terminy ORDER BY termin
powoduje, iż dane z niepodanym terminem są na górze :/
zapytanie
  1. SELECT * FROM terminy WHERE termin != '0000-00-00' ORDER BY termin
odpada gdyż, te bez daty też muszą mi się pobrać tyle, że na samym końcu. Wpadłem na pomysł, żeby zaminić 0000-00-00 na 9999-00-00, ale jest to troszkę naciągane. Czy da się inaczej to załatwić?;>
wookieb
  1. (SELECT * FROM terminy WHERE termin!='0000-00-00' ORDER BY termin)
  2. UNION
  3. (SELECT * FROM terminy WHERE termin='0000-00-00')

Niestety pisane z palca wiec jak cos nie bedzei trybic to zobaczy czy UNION ALL da rade.
Manwe89
no jest problem :/ dobrze mi dokleja union, ale nie ma sortowania w pierwszej części... na screenie pominalem doklejona czesc przez union.

http://yfrog.com/ekbeztytuuvhxj
wookieb
A pole "termin" jest typu tekstowego? Jeżeli tak to musisz je zamienic na pole daty. Tylko wczesniej zrób sobie backup.
Manwe89
przeciez to da taki sam wynik jak bylby bez union tongue.gif bo i tak wszystkie pobiore smile.gif
dr_bonzo
Hmm, jak zezwolisz polu byc NULL i ustawisz tam NULLe zamiast 0000000 to NULLE znajda sie na koncu.
Manwe89
pole data jest smile.gif post wyzej pomogl. dzieki smile.gif
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.