-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: " M.M." <m...@N...gazeta.pl>
Newsgroups: pl.comp.programming
Subject: Re: losowy rekord w sqlu
Date: Mon, 23 Apr 2012 16:49:25 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 46
Message-ID: <jn416l$4n1$1@inews.gazeta.pl>
References: <jmuf1p$rlf$1@inews.gazeta.pl> <jn3ski$9ej$1@news.task.gda.pl>
NNTP-Posting-Host: localhost
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1335199765 4833 172.20.26.239 (23 Apr 2012 16:49:25 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 23 Apr 2012 16:49:25 +0000 (UTC)
X-User: mariotti
X-Forwarded-For: 89.229.34.123
X-Remote-IP: localhost
Xref: news-archive.icm.edu.pl pl.comp.programming:196958
[ ukryj nagłówki ]zażółcony <r...@c...pl> napisał(a):
> W dniu 2012-04-21 16:08, M.M. pisze:
> > Hey
> >
> > Moje pytanie jest proste. Jak efektywnie wybrać losowy
> > rekord (ewentualnie kilka losowych) dużej tabeli w sqlu?
> >
> > Sztuczki tego typu:
> > SELECT * FROM table ORDER BY rand LIMIT kilka
> > zdaje się że przeglądają całą tabelę, a to jest niedopuszczalne.
> >
> > Pozdrawiam
>
> Taki pomysł "z czapki":
> Dodaj sobie dodatkowe pole RND, z góry wypełnij je wartościami
> losowymi typu double z przedziału <0.0-1.0)
> Jak przewidujesz bardzo dużo rekordów - być może warto rozważyć
> dwa double
>
> Zakładasz indeks.
>
> Potem trzaskasz zapytania w rodzaju
> select limit 1 where RND<=random()
Nie zadziała. Gdy rekord z małą wartością pola RND będzie się
pojawiał pierwszy w kolejności przeglądania to on zdecydowanie częściej
będzie się wyświetlał. Rekordowi pobranemu trzeba nadać nową losową
wartość:
Może tak:
rnd = rand();
rekord = MIN( T.rnd );
rekord.rnd = rand();
1) Nie powinno być kłopotów przy złączeniach
2) Można założyć index na T.rnd
3) Nie ma problemów z usuwaniem i "dziurami"
4) Rozkład... właśnie nie mam pewności jaki jest rozkład.
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 23.04.12 19:31 M.M.
- 24.04.12 01:34 M.M.
- 24.04.12 11:11 zażółcony
- 24.04.12 12:01 M.M.
- 24.04.12 12:42 M.M.
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-02-06 PROGRAM DOPŁAT DO AUT ELEKTRYCZNYCH TO ABSURD. ZA ŚRODKI Z KPO KUPIMY NIEMIECKIE I CHIŃSKIE AUTA
- 2025-02-05 ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-07 Smar do video
- 2025-02-06 Litowe baterie AA Li/FeS2 a alkaliczne
- 2025-02-07 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-07 Warszawa => System Architect (Java background) <=
- 2025-02-07 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-07 Warszawa => Solution Architect (Java background) <=
- 2025-02-07 Gliwice => Ekspert IT (obszar systemów sieciowych) <=
- 2025-02-07 Lublin => Programista Delphi <=
- 2025-02-07 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-02-07 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-07 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo