Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 6 Dołączył: 17.05.2007 Ostrzeżenie: (0%)
|
Witam
Na początku zaznaczam że szukałem na forum i nic nie znalazłem więc jeżeli było to proszę o linka Pobieram z bazy danych losowe wpisy takim pytaniem: "SELECT * FROM obrazki ORDER BY RAND() LIMIT 10" Niestety przy 400 wpisach pytanie wykonuje się ok 0.2s Czy jest jakiś szybszy sposób na to? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%)
|
Czyli mam wybrać wszystkie identyfikatory obrazków?
tak i zapisz je w jakiejś tablicy. Jeśli dane w tabeli się często nie zmieniają warto by było taką tablicę gdzieś w pliku PHP po prostu zapisać I jeszcze jedno pytanie: Czy funkcja array_rand zapewnia to, że wybrane elementy tablicy nie będą się powtarzać? W zasadzie to nie zapewnia, ale zawsze możesz sprawdzać, czy dana wartość jest w tablicy (in_array), jest to trochę dłuższe... Ewentualnie jeśli liczba tych wylosowanych obrazków nie jest krytycznie ważna to możesz posłużyć się statystyką. Czyli w zależności od liczby rekordów losujesz na przykład 12 i robisz zapytanie:
|
|
|
|
Force [mysql] wybieranie losowego wpisu 16.01.2008, 13:59:04
Cezar708 CytatRAND() is not meant to be a perfect random ge... 16.01.2008, 16:01:00
Force Mam mniej więcej taką tabelę
[SQL] pobierz, plaint... 16.01.2008, 21:26:37
nevt ja bym to spróbował zrobić na 2 zapytani... 16.01.2008, 21:37:33
Force nevt: Tylko, że ja wyciągam z bazy ponad 10 wpisów... 17.01.2008, 13:43:37 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 11:38 |