Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ORDER BY, zlozone zapytanie
Sabudda
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 8.02.2004
Skąd: Białystok

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


Witam,
Mam następującą tabele

Informacje
- id (auto)
- tresc
- data_dodania
- wyroznienie (0/1)

Muszę (w php) wywołać informacje, tak aby:
Rekordy wyświetlały się w kolejności malejącej (desc [czyli najnowsze informacje są z przodu])
Rekordy wyróżnione (wyroznienie = 1) były na początku, jednak tylko wtedy, gdy data dodania = data dzisiejsza, w przeciwnym wypadku niech rekordy wyroznione wyswietlają się z pozostałymi. (czyli jeśli tego samego dnia zostanie dodana inna informacja bez wyroznienia to będzie pod wyróżnionymi)

.

nikt nie potrafi rozwiązać tego problemu ? To może inaczej... jak Wy byście to zrobili...

Najprościej chyba rozbić na 2 zapytania, jednak wtedy trzeba będzie powtórzyć 2 krotnie kod wyświetlający daną informacje... jakieś pomysły ?
Go to the top of the page
+Quote Post
prond
post
Post #2





Grupa: Zarejestrowani
Postów: 254
Pomógł: 10
Dołączył: 8.11.2006
Skąd: Warszawa

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


Ja bym to zrobił mniej więcej tak :

  1. SELECT
  2. *
  3. FROM ( SELECT
  4. CASE WHEN data_dodania = NOW() AND wyroznienie = 1 THEN 1 ELSE 0 END AS first_sort_col,
  5. infos.*
  6. FROM infos ) AS t1
  7. ORDER BY t1.first_sort_col DESC, t1.data_dodania DESC;


Wybaczcie, że uprościłem warunek na datę.

Ten post edytował prond 15.02.2007, 11:27:33


--------------------
--------------------------------------------------------------------------------
weblog.axent.pl
--------------------------------------------------------------------------------
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. (SELECT * FROM tabela WHERE data_dodania = NOW() ORDER BY wyroznienie DESC)
  2. UNION
  3. (SELECT * FROM tabela WHERE data_dodania <> NOW() ORDER BY data_dodania DESC);


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Aktualny czas: 20.08.2025 - 04:28