-
Data: 2012-04-23 18:49:25
Temat: Re: losowy rekord w sqlu
Od: " M.M." <m...@N...gazeta.pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- 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
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-08 Belka
- 2024-11-09 pierdolec na punkcie psa
- 2024-11-09 Warszawa => Sales Executive <=
- 2024-11-09 Wrocław => SAP BTP Consultant (mid/senior) <=
- 2024-11-09 Warszawa => ECM Specialist / Consultant <=
- 2024-11-09 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-10 TVN donosi: Obywatelskie zatrzymanie policjanta (nie na służbie)
- 2024-11-08 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Szczecin => Key Account Manager (ERP) <=
- 2024-11-08 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-08 Wrocław => Senior PHP Symfony Developer <=
- 2024-11-08 Warszawa => QA Engineer <=
- 2024-11-08 Warszawa => QA Inżynier <=
- 2024-11-08 Warszawa => Key Account Manager <=