Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]group - sortowanie odwrotne
Forum PHP.pl > Forum > Przedszkole
neo1986kk
Witam, mam pytanie dotyczące grupowania mysql

chodzi o to że w bazie jest zapis na przyklad

id|kolumna1|kolumna2
1| przykladowy_news|wojtek
2| przykladowy_news|ania
3| przykladowy_news|wojtek
4| przykladowy_news|wojtek
5| przykladowy_news|marek
6| przykladowy_news|kasia
7| przykladowy_news|wojtek
8| przykladowy_news|ania

i teraz chcę żęby wyświelilo tylko 2 rekordy w kolejności : 8,7

8| przykladowy_news|ania
7| przykladowy_news|wojtek

dalem tutaj:
  1. $zapytanie=mysql_query("Select * from tabela group by kolumna2 order by id DESC limit 2");

takie coś zgrupuje mi ANIA i go nie wyświetli bo widzi go jako 2 mimo to że jest to ostatni wpis.
kartin
Tylko po co ci do tego grupowanie?
  1. SELECT id, kolumna1, kolumna2
  2. FROM tabela
  3. ORDER BY id DESC
  4. LIMIT 2

Wyświetli 2 ostatnie rekordy
neo1986kk
no tak nie napisalem najważniejszego. ale te rekordy nie mogą się powtarzać więc w przypadku gdy bedzie

1| przykladowy_news|wojtek
2| przykladowy_news|ania
3| przykladowy_news|kasia
4| przykladowy_news|wojtek
5| przykladowy_news|marek
6| przykladowy_news|ania
7| przykladowy_news|wojtek
8| przykladowy_news|ania

i chcę wyświetlić 4 wpisy to chce wyświetlić coś takiego

8| przykladowy_news|ania
7| przykladowy_news|wojtek
5| przykladowy_news|marek
3| przykladowy_news|kasia

thek
Jest kilka możliwości. Najprostsza... Zrób podzapytanie które odwróci tablicę zanim ją pogrupuje. Innymi słowy zamiast:
FROM tablica
zrobisz:
FROM (SELECT kolumny_wybrane FROM tablica ORDER BY id DESC) AS reverse_table
a reszta po staremu, tyle że teraz korzystasz nie z tablica, ale aliasu reverse_table smile.gif
Aczkolwiek to nie jedyne rozwiązanie tego problemu.
neo1986kk
niby takie oczywiste, dzieki.
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.