Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] grupowanie wyników
webspy
post
Post #1





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Witam,

Czy istenieje możliwość pogrupowania wyników z tabeli w taki sposób, że jeśli jest więcej takich samych to pokazuje drugi wynik a nie pierwszy czy ostatni?

Tabela:

Nazwa------------data--------------numer
krzysztof------2012-12-11-----------7
Adam------------2012-12-10------------7
Adam------------2012-10-10------------7
Adam------------2012-5-10------------4


group by numer numer ASC

Czy dam ASC czy DESC to i tak pokazuje wynik z brzegu albo pierwszy albo ostatni jak wyciągnąć wynik 2 od góry?

Na początku robiłem dwa osobne zapytania które grupowały a potem szukały drugiego wyniku przez LIMIT 1,1 lecz to nie sprawdza się bo potrzebuję wyświetlić kilka wyników w pętli a to moje pierwsze działało przy jednym wyniku.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kristaps
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


A koniecznie musi to być zapytanie? Z pętlą nie byłoby problemu - wyświetlałbyś sumę wszystkich rekordów i pomijał te które chcesz.
Go to the top of the page
+Quote Post
webspy
post
Post #3





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Cytat(kristaps @ 19.12.2012, 09:54:59 ) *
A koniecznie musi to być zapytanie? Z pętlą nie byłoby problemu - wyświetlałbyś sumę wszystkich rekordów i pomijał te które chcesz.


I tak właśnie zrobiłem przez pętle, lecz to nie jest zbyt optymalne, w jednym zapytaniu byłoby to lepsze i szybsze ale trzeba sobie jakoś radzić (IMG:style_emoticons/default/smile.gif) ważne że działa tak jak chce.

Jakby ktoś miał jakiś pomysł to może coś wymyśli jak to rozwiązać w jednym zapytaniu, próbowałem podzapytania zrobić ale się pogubiłem i nic z tego nie wyszło.

Pozdrawiam.

Cytat(Kshyhoo @ 19.12.2012, 11:49:05 ) *
Nie do końca rozumiem, co chcesz osiągnąć.
  1. SELECT id, numer, DATA, nazwa
  2. FROM tabela
  3. GROUP BY DATA
  4. ORDER BY numer ASC
  5. LIMIT 1,10



Mam w tabeli dane jakiegoś gościa jest w niej imie, data, nr, tresc, wyświetlam wszystkie dane z bazy i grupuje je według kolumny nr nastepnie sortuje kolejno imie ASC, nr ASC
Wynik ładnie pięknie pokazuje wszystkie wiersze bez powtórzeń: nr tylko, że pokazuje ostatni wiersz z grupowanej kolumny:

Krzysztof-------------5---------------treść1 -> po zmianie nr DESC pokazuje ten wynik
Krzysztof-------------5---------------treść2 -> chcę aby po grupowaniu pokazywało ten wynik zawsze drugi od góry (w jednym zapytaniu to robię nr = '5' ORDER BY data ASC
Krzysztof-------------5---------------treść3
Krzysztof-------------5---------------treść4
Krzysztof-------------5---------------treść5 -> po grupowaniu pokazuje ten wynik
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 09:43