ďťż
 
Uzyskanie pozycji rekordu na bazie jego ID ďťż
 
Uzyskanie pozycji rekordu na bazie jego ID
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

Uzyskanie pozycji rekordu na bazie jego ID



sf - 22-07-2006 04:32
Uzyskanie pozycji rekordu na bazie jego ID
  Witam,
Posiadam zapytanie SQL, które generuje X wyników. Na pozycji Y znajduje się
rekord posiadający identyfikator AAA. Chciałbym uzyskać informację o tym, na
którym miejscu znajduje się ów rekord posiadając TYLKO zapytanie i
identyfikator tego rekordu.

Taka rzecz przydaje się przy konstruowaniu następny / poprzedni rekord - gdy
dostajemy identyfikator rekordu i wiemy przy jakich warunkach mamy wykonać
zapytanie SQL.

Pozdrawiam,
Paweł Malisak 'stormfly'

--
http://www.hyh.pl

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/





sf - 22-07-2006 04:33

  Zapomniałem dodać, że pracuje na bazie PostgreSQL 7.4.

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 22-07-2006 04:33

  sf wrote:
> Witam,
> Posiadam zapytanie SQL, które generuje X wyników. Na pozycji Y znajduje się
> rekord posiadający identyfikator AAA. Chciałbym uzyskać informację o tym, na
> którym miejscu znajduje się ów rekord posiadając TYLKO zapytanie i
> identyfikator tego rekordu.
>
> Taka rzecz przydaje się przy konstruowaniu następny / poprzedni rekord - gdy
> dostajemy identyfikator rekordu i wiemy przy jakich warunkach mamy wykonać
> zapytanie SQL.

select count(*) from tabela where id <= dane_id;

Przy założeniu, że sortujesz po id.

--
P.M.




sf - 22-07-2006 04:33

  Paweł Matejski napisał(a):
> select count(*) from tabela where id <= dane_id;
>
> Przy założeniu, że sortujesz po id.

Sposób powinnien być niezależny od sortowania.

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/





Wojtek pBT (prac) - 22-07-2006 04:33

  sf napisał(a):
> Witam,
> Posiadam zapytanie SQL, które generuje X wyników. Na pozycji Y znajduje się
> rekord posiadający identyfikator AAA. Chciałbym uzyskać informację o tym, na
> którym miejscu znajduje się ów rekord posiadając TYLKO zapytanie i
> identyfikator tego rekordu.
>
> Taka rzecz przydaje się przy konstruowaniu następny / poprzedni rekord - gdy
> dostajemy identyfikator rekordu i wiemy przy jakich warunkach mamy wykonać
> zapytanie SQL.

W relacyjnych BD pozycja rekordu nie ma znaczenia. to ty ją określasz
wykonując sortowanie. Paweł podał ci rozwiązanie, + use /dev/brain

Hint: każde zapytanie możesz posotować wg zadanych kryteriów. W każdej
sytuacji.

ps.: w PG narzekają na count(*) Nie wiem, jak to się ma w aktualnych
wersjach, ale całkiem niedawno było bardzo powolne

pBT




Marcin Piotr Grondecki - 23-07-2006 04:38

  Dnia 21.07.2006 sf <stormfly@gazeta.SKASUJ-TO.pl> napisał/a:
> Paweł Matejski napisał(a):
>> select count(*) from tabela where id <= dane_id;
>> Przy założeniu, że sortujesz po id.
> Sposób powinnien być niezależny od sortowania.
W SQL'wych klimatach powyższe Twoje zdanie można przełożyć na: podaj,
na której pozycji w ciągu liczba naturalnych jest liczba 5,
niezależnie od tego, jak uporządkowaliśmy ciąg.
W SQL nie określa się pozycji/lokalizaji/numeru krotki bez określonego
sposobu porządkowania.
--
ojciec




Artur Muszynski - 23-07-2006 04:38

  sf wrote:
> Witam,
> Posiadam zapytanie SQL, które generuje X wyników. Na pozycji Y
> znajduje się rekord posiadający identyfikator AAA. Chciałbym uzyskać
> informację o tym, na którym miejscu znajduje się ów rekord posiadając
> TYLKO zapytanie i identyfikator tego rekordu.
>
> Taka rzecz przydaje się przy konstruowaniu następny / poprzedni
> rekord - gdy dostajemy identyfikator rekordu i wiemy przy jakich
> warunkach mamy wykonać zapytanie SQL.

Nie podałeś, z jaką bazą masz do czynienia. Twój problem można rozwiązać
przez rownum, funkcję, procedurę itp.
PS: Miałem podobny problem na MySQL'u - chodziło o przypisanie strony do ID.
Nie chciało mi się walczyć i zrobiłem po prostu pętelkę na kliencie.

artur
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?= Jak =?ISO-8859-2?Q?zamieni=E6_dwa_pola_jednej_kolumny_?==?ISO-8859-2?Q?w_dw=F3ch_rekordach_za_pomoc=B1_jednego_zapyt? ==?ISO-8859-2?Q?ania=3F?= [mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?= =?ISO-8859-2?Q?WY=B6wietlenie_rekord=F3w_pocz=B1wszy_od_?==?I SO-8859-2?Q?danej_litery=2E=2E=2E?= =?iso-8859-2?Q?=5BMySQL=5D_Wy=B6wietlenie_wszystkich_rekordow _zawierajacy?==?iso-8859-2?Q?ch_duplikat_a__moze_inna_struktura_bazy_danych ?= [pgsql] Akcja w =?iso-8859-2?b?emFsZb9ub7ZjaQ==?= od liczby zmienionych =?iso-8859-1?q?rekord=F3w?= [postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?= [mysql] Wyszukanie =?ISO-8859-2?Q?rekord=F3w=28powiazane_tabel?==?ISO-8859-2?Q?e=29?= [MySQL]: Dodanie zliczania =?ISO-8859-2?Q?rekord=F3w_do_rozb?==?ISO-8859-2?Q?udowanego_zapytania?= Liczba =?ISO-8859-2?Q?odpowiadaj=B1cych_rekord=F3w_z_drugi?==?ISO-8859-2?Q?ej_tabeli?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • fantazia.htw.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