mysql - losowe pobieranie rekordow
Mariusz Pasieczny - 22-05-2006 00:02
mysql - losowe pobieranie rekordow
Czolem.
Pytanie moze i nie najmadrzejsze ale wole spytac ;) Czy zapytanie: select * from tabela order by rand() limit 20,20 pobierze mi kolejna porcje rekordow losowo wybranych z bazy, ale z pominieciem tych pobranych wczesniej (select * from tabela order by rand() limit 0,20)?
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
frykow - 23-05-2006 00:24
A skad niby ma wiedziec jakie pobral wczesniej rekordy?
Mariusz Pasieczny - 23-05-2006 00:25
frykow <frykow@wp.pl> napisał(a):
> A skad niby ma wiedziec jakie pobral wczesniej rekordy? >
heh dlatego napisalem ze pytanie raczej nienajmadrzejsze ;) czyli wyjsciem bedzie albo dodanie nowej kolumny np typu set ktora by okreslala czy dany rekord byl wyswietlony w biezacym przebiegu petli badz obrobic to w aplikacji klienckiej...
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
frykow - 23-05-2006 00:25
Mariusz Pasieczny napisał(a): > frykow <frykow@wp.pl> napisał(a): > > > A skad niby ma wiedziec jakie pobral wczesniej rekordy? > heh dlatego napisalem ze pytanie raczej nienajmadrzejsze ;) czyli wyjsciem > bedzie albo dodanie nowej kolumny np typu set Enum lepiej.
Albo twórz tabelę tymczasową.
pozdr Frykow
Mariusz Pasieczny - 24-05-2006 00:17
frykow <frykow@wp.pl> napisał(a):
> > Mariusz Pasieczny napisa=B3(a): > > frykow <frykow@wp.pl> napisa=B3(a): > > > > > A skad niby ma wiedziec jakie pobral wczesniej rekordy? > > heh dlatego napisalem ze pytanie raczej nienajmadrzejsze ;) czyli wyjsciem > > bedzie albo dodanie nowej kolumny np typu set > Enum lepiej.=20 > > Albo tw=F3rz tabel=EA tymczasow=B1.
Ok. W takim razie które rozwiązanie polecałbyś: - tabela tymczasowa przechowująca chwilowe wartości pobrane z bazy danych, losowanie z puli pozostałych, po przejściu pętli / wybraniu wszystkich reset tabeli i wszystko od nowa - wygenerowanie po wejściu na stronę tabeli zawierającej żądaną listę i działanie jedynie na niej; oczywiście co jakiś czas czyszczenie tempa.
W drugim przypadku dodatkowo stronicowanie można by dorzucić bez problemów. Chyba to właśnie wybiorę... A co według Ciebie byłoby lepsze?
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 24-05-2006 00:17
Mariusz Pasieczny wrote: > frykow <frykow@wp.pl> napisał(a): > > Ok. W takim razie które rozwiązanie polecałbyś: > - tabela tymczasowa przechowująca chwilowe wartości pobrane z bazy danych, > losowanie z puli pozostałych, po przejściu pętli / wybraniu wszystkich reset > tabeli i wszystko od nowa > - wygenerowanie po wejściu na stronę tabeli zawierającej żądaną listę i > działanie jedynie na niej; oczywiście co jakiś czas czyszczenie tempa. > > W drugim przypadku dodatkowo stronicowanie można by dorzucić bez problemów. > Chyba to właśnie wybiorę... A co według Ciebie byłoby lepsze?
Jeśli piszesz o stronach, czyli piszesz aplikacje dostępną przez www, to z dużym prawdopodobieństwem tabele tymczasowe Ci się nie przydadzą. Generując dwa razy tą samą stronę, nie masz gwarancji, że dzieje się to w ramach tego samego połączenia. Czyli potrzebna Ci nie tabela tymczasowa, a robaczo. A co za tym idzie, musisz sam zarządzać dostępem do danych tymczasowych, jak i ich expirowaniem.
-- P.M.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
zanotowane.pldoc.pisz.plpdf.pisz.plchinska-zupka.opx.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 |
|