Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: określona ilośc wierszy z danej kategorii
Forum PHP.pl > Forum > Bazy danych > MySQL
DeyV
Ostatnio troszkę to forum odzyło, i zaczęły pojawiać się ciekawsze zapytania, co skłoniło mnie do coraz to nowych poszukiwań.
Jednak, jak już nie raz, nie poradzę sobie chyba bez Was.

Chciałbym zadać zapytanie, które pozwoli za jednym razem wyciągnąc po np. 5 wierszy z danej kategorii z wszystkich dostępnych kategorii.
Czy można to zrobić przy pomocy 1 zapytania, bez subqueries?
Bakus
Cytat
Chciałbym zadać zapytanie, które pozwoli za jednym razem wyciągnąc po np. 5 wierszy z danej kategorii z wszystkich dostępnych kategorii.


A troszeczkę bardziej po ludzku? Nie zabardzo rozumiem o co Ci chodzi...
DeyV
Ok.
Chciałbym pobrać po kilka przedstawicieli, powiedzmy owoców, z kazdej dostępnej kategorii.
Oznacza to, że jeśli mielibyśmy powiedzmy:
10 jabłek, 15 gruszek i 20 wiśni i 1 melon
ja w wyniku chciałbym mieć:
5 jabłek, 5 gruszek, 5 wiśni i 1 melon,
na zasadzie:
1 jabłko
2 jabłko
3 jabłko
4 jabłko
5 jabłko

1 gruszka
2 gruszka
. . .
Bakus
Teraz rozumiem...
Aczkolwiek z racji mojej w bliżej nie określonej wiedzy dot. SQLa ja wykonałbym to kilkoma zapytaniami - po jednym do każdej kategorii... w takim przypadku wystarczy LIMIT...
Jabol
a union? tylko, że musiałbyś znać wszystkie kategorie :/ ...
a masz może te wszystkie rzeczy oddzielnie ponumerowane? bo wtedy to prościutko.
btw. @DeyV: a może byś tak strukture jakąś zapodał, czy to pytanie czysto teoretyczne?
ps. oczywiście chyba, że się zgodzisz na plpgsql, wtedy ładna prosta funkcja, która zwraca kursor. Ale jak subqueries nie to o czym ja marze...
uboottd
E tam, subzapytania, plpgsqle, grzyby, w d** sie poprzewracalo, a tak naprawde to dosc proste zadanie:
  1. SELECT * FROM owo GROUP BY a%5,b ORDER BY b,a;

gdzie a to kolejne id owocu, a b nazwa owocu.
jesli nie ma id (musi byc unikalne wylacznie w obrebie jednego owocu, jak jest w ogole unikalne to nic nie zmienia), jak nie ma id to mozna uzyc ukrytego numeru wiersza.
DeyV
uboottd - jak zwykle jesteś nie do pobicia.
Co jednak masz na myśli mówiąc:
Cytat
jak nie ma id to mozna uzyc ukrytego numeru wiersza.
uboottd
Zwykle oprocz jawnie zdefiniowanych kolumn DBMS dodaje kilka wlasnych, majacych specjalne znaczenie. Jedna z nich jest zazwyczaj wewnetrzny numer wiersza. MySQL ma to pod nazwa _rowid, ale nie wystepuje to we wszystkich tabelach, warunkiem jest posiadanie klucza typu int na jedna kolumne. PGSQL ma podobny numer pod nazwa oid.
spenalzo
Cytat
Ostatnio troszkę to forum odzyło, i zaczęły pojawiać się ciekawsze zapytania, co skłoniło mnie do coraz to nowych poszukiwań.  
Jednak, jak już nie raz, nie poradzę sobie chyba bez Was.

WIECEJ aaevil.gif
Jestem żądny jakiś trudnych przykładów.
Niestety przez ostatnie dwa tygodnie bylem na modemie sad.gif więc jak wchodziłem na forum to wszystko rozwiązane #-o smile.gif
Jabol
@uboottd: Tak mi się zastanawiało. A gdyby wszystkie kategorie były pomieszane i nie tak, że każda kategoria jest ma wpisy jeden po drugim? Albo jeszcze lepiej. Jakby było na przemian co pięć zawsze to samo, np.
Kod
jabłko

gruszka

pietruszka

bimber

jabol

jabłko

gruszka

pietruszka

bimber

jabol

itp

itd

to co wtedy?
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.