Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] sortowanie
Forum PHP.pl > Forum > Przedszkole
Dynuel
nie wiem jak tytuł nazwać.. z tym problemem mecze sie już z tydzień...

mam taką tabelę:
  1. id, duplikat, DATA, tytul
  2. 1, 0, 2007-11-01, coś tam 1
  3. 2, 1, 2007-11-02, coś tam 2
  4. 3, 0, 2007-11-03, cos tam 3
  5. 5, 1, 2007-11-04, coś tam 4
  6. 6, 0, 2007-11-05, cos tam 5
  7. 7, 1, 2007-11-06, coś tam 6
  8. 9, 0, 2007-11-07, coś tam 7

i teraz musze zrobić tak by wyświetliło mi normalnie WSZYSTKIE wpisy z polem DUPLIKAT = 0, ale za to tylko po jednym najmłodszym (według pola DATA) wpisie z polem DUPLIKAT != 0, że np. tylko po jeden najmłodszy (wdług DATA) wpis ze wszystkich wpisów z DUPLIKAT = 1, również tylko jeden najmłodszy z wpisów z DUPLIKAT = 2 itd
gutek84
select * from tabela where duplikat like "0"
union
select * from tabela where duplikat like 1 and date=(select min(date) from tabela where duplikat=1)
union
.
.
.
select * from tabela where duplikat like n and date=(select min(date) from tabela where duplikat=n)

a zapytanie mozesz wygenerowac w php petla poprzez podanie jej wartosci np. 
$w=mysql_query(" select max(duplikat) from tabela");
$wart=mysql_fetch_row($w)
dalej ,
for ($i=0;$i<$wart[0];$i++){
If($i=0)
$q="select * from tabela where duplikat='".$i."' and date=(select min(date) from tabela where duplikat='".$i."');
If($i<$wart[0])
$q.="union select * from tabela where duplikat='".$i."' and date=(select min(date) from tabela where duplikat='".$i."');
}

mozesz sprobowac zrobic cos w tym stylu nie wiem czy zadziala. Pisane z glowy, moga byc bledy!!!
pozd
Dynuel
z dumą mogę powiedzieć że w końcu to rozwiązałem wczoraj D

  1. ( SELECT * FROM materialy WHERE duplikat = 0 )
  2.  
  3. UNION
  4.  
  5. ( SELECT * FROM ( SELECT * FROM materialy WHERE duplikat != 0 ORDER BY DATA DESC ) AS tablica GROUP BY tablica.duplikat )
  6.  
  7. ORDER BY DATA DESC


to zwraca mi wszystkie wpisy z DUPLIKAT = 0 oraz tylko po jednym (najnowszym) wpisie z DUPLIKAT != 0, a potem w php już tylko sprawdzam czy DUPLIKAT != 0 i jeżeli tak to doczytuje pozostałe elementy z taką sama wartością DUPLIKAT nadając im styl css
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.