Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%)
|
W taki sposób losuję, które rekordy z bazy danych mają być pobrane
Kod $comrades = $db -> Execute("SELECT * FROM users WHERE id >= ".$sektor_id -> fields['id']." AND id <= ".$sektor_id -> fields['id']." + 2 ORDER BY rand() LIMIT 4"); Niestety ilość rekordów spełniających te kryteria wynosi 3, a LIMIT 4. W jaki sposób przerobić to by było to prawdziwe losowanie - tj. za każdym razem byłby losowany user z podanego przedziału id bez względu na poprzednie losowania (czyt. możliwe byłoby pobranie kilka razy tego samego usera). |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%)
|
Tylko teraz powstaje pytanie co jest bardziej wydajne i co mniej obciąży MySQL - Jeden z Twoich sposobów czy prosta funkcja while () zastosowana w PHP, losująca po 1 wyniku i dodająca ten wynik do tablicy?
|
|
|
|
Skie [MYSQL] Losowanie wyników 29.08.2008, 18:32:13
grzemach szczerze mówiąc do końca nie rozumiem co masz na m... 29.08.2008, 21:57:50
szopen Uprasza się o niezajeżdżanie serwer... 30.08.2008, 03:39:43 
szopen Cytat(Skie @ 30.08.2008, 11:28:17 ) T... 31.08.2008, 15:50:55
golaod No rzeczywiście w while wyciągnąć 30 tys. wyników ... 30.08.2008, 10:39:48 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 21:11 |