ďťż
 
=?iso-8859-2?q?[MySQL]_n_generacji_potomk=F3w_artyku=B3u?= ďťż
 
=?iso-8859-2?q?[MySQL]_n_generacji_potomk=F3w_artyku=B3u?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

=?iso-8859-2?q?[MySQL]_n_generacji_potomk=F3w_artyku=B3u?=



hekatonchejr@gmail.com - 11-05-2007 12:32
=?iso-8859-2?q?[MySQL]_n_generacji_potomk=F3w_artyku=B3u?=
  Cześć,

Mam mały zgryz, może będziecie w stanie pomóc.
Otóż mam w MySQL tabelę 'articles', która zawiera m.in. pola: 'id' i
'hierarchy'.
id to oczywiście unsigned int z autoincrement itd.
hierarchy to varchar(32) z indeksem

W hierarchy przechowuję listę 'id' artykułów nadrzędnych względem
danego, oddzielonych znakiem '/'. Id są uszeregowane od najwyższego w
hierarchii i przechowują jakby kolejne, zawężające się kategorie,do
których należy artykuł. Z tym, że każda kategoria jest tak naprawdę
artykułem przechowywanym w tej samej tabeli, nie jakimś osobnym
wpisem.

Tyle wstępu. Wiem, jak skonstruować zapytanie, które poda mi

1. rodzica danego artykułu (po prostu 'WHERE hierarchy = '.
$hierarchy)
2. jego bezpośrednich potomków
('WHERE hierarchy = '. $hierarchy. '/' .$id)
3. jego wszystkich potomków
('WHERE hierarchy LIKE '. $hierarchy. '/' .$id. '%')

Pomóżcie: jak skonstruować zapytanie tylko o n generacji potomków? Nie
chciałbym tego robić zapytaniem nr 3 i później wycinać niepotrzebnych
w
tablicy wyników w PHP

--
Pozdrawiam,
Hekatonchejr





Jacek - 11-05-2007 12:32

  Moze select top n?




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 11-05-2007 12:32

  hekatonchejr@gmail.com wrote:
> Cześć,
>
> Mam mały zgryz, może będziecie w stanie pomóc.
> Otóż mam w MySQL tabelę 'articles', która zawiera m.in. pola: 'id' i
> 'hierarchy'.
> id to oczywiście unsigned int z autoincrement itd.
> hierarchy to varchar(32) z indeksem
>
> W hierarchy przechowuję listę 'id' artykułów nadrzędnych względem
> danego, oddzielonych znakiem '/'. Id są uszeregowane od najwyższego w
> hierarchii i przechowują jakby kolejne, zawężające się kategorie, do
> których należy artykuł. Z tym, że każda kategoria jest tak naprawdę
> artykułem przechowywanym w tej samej tabeli, nie jakimś osobnym
> wpisem.
>
>
> Tyle wstępu. Wiem, jak skonstruować zapytanie, które poda mi
>
> 1. rodzica danego artykułu (po prostu 'WHERE hierarchy = '.
> $hierarchy)
> 2. jego bezpośrednich potomków
> ('WHERE hierarchy = '. $hierarchy. '/' .$id)
> 3. jego wszystkich potomków
> ('WHERE hierarchy LIKE '. $hierarchy. '/' .$id. '%')
>
> Pomóżcie: jak skonstruować zapytanie tylko o n generacji potomków?

To nie jest problem bazodanowy, ale zabawa na stringach funkcjami mysql'a.
Możesz np. policzyć różnicę między ilością '/' w hierarchy danego artykułu a
jego potomkami (znajdź odpowiednią funkcję lub ją napisz).
Ale lepiej jest sprowadzić to do problemu bazodanowego, np. przy pomocy tzw.
metody 5, której opis znajdziesz w FAQ albo na stronach depesza.

--
P.M.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Gdzie MySQL 4.1, a gdzie 5.0? [MS SQL] "set names" (mySQL) w MS SQL oracle -> oracle lub oracle -> mysql replikacja - programy [mysql 4.0] SELECT t1.id, t1.foo FROM t1 oraz COUNT t2 w jednym zapytaniu. [MySQL] Zwrot tego, co pasuje i nie pasuje :-/ [pgsql] Dostosowanie składni MySQL 5.0 -> PGSQL 8.1 [mysql] galeria zdjec - numerowanie zdjec [MySQL] Zapytanie z pliku , wynik do pliku [mysql] CONCAT agregujący, ale nie GROUP_CONCAT() mysql data 0000-00-00 na koniec
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • adwokat.keep.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com