Autor | Zpráva | ||
---|---|---|---|
123456 Profil * |
Moderátor Str4wberry: Přesunuto z PHP. Ahoj, ako urobit MYSQL prikaz ktory vyberie JEDEN nahodny row z poslednych 10 zaznamov?
|
||
Str4wberry Profil |
Nejlepší asi bude si v PHP vygenerovat náhodné číslo a to použít jako
LIMIT , zhruba takto:
$nahodneCislo = mt_rand(0, 9); $dotaz = "select * from tabulka order by datum desc limit $nahodneCislo, 1"; |
||
123456 Profil * |
#3 · Zasláno: 21. 12. 2012, 21:40:22
order by poslednych 10 ID-ciek pojde?, datum neukladam
|
||
Str4wberry Profil |
#4 · Zasláno: 21. 12. 2012, 21:49:00
Pokud ta ID značí chronologii dat, tak by mělo.
|
||
123456 Profil * |
#5 · Zasláno: 21. 12. 2012, 21:50:16
tomu nerozumiem co myslis, je to ID s auto_increment
|
||
Kajman Profil |
#6 · Zasláno: 22. 12. 2012, 19:50:13
123456:
„datum neukladam“ Tak je místo sloupce datum použitje v dotaze sloupec s id. |
||
Časová prodleva: 2 měsíce
|
|||
Kemsyt Profil * |
#7 · Zasláno: 27. 2. 2013, 15:46:47
Caute. Dobre, a co tak toto: mam tabulku kde je 1000 riadkov. Jednym zo stlpcov je kategoria (
cat ), ktora ma hodnotu 1 az 7. Zadanie SELECT * FROM table WHERE cat IN (2,5,6) (2,5,6 je priklad, zavisi od udaja vyplneneho vo formulari) mi vrati vsetky riadky. A moja otazka: ako z tychto vsetkych riadkov (povedzme ze mi vrati 200 riadkov) vyberiem len 20, ale NAHODNYCH, riadkov ? Da sa to nejak jednoducho zadat uz priamo do SQL prikazu ? (t.j. nie cez dodatocne vyselektovanie nahodnych riadkov pomocou PHP) dakujem
|
||
Kemsyt Profil * |
#8 · Zasláno: 27. 2. 2013, 20:37:51
Vyriesil som to napokon takto:
SELECT * FROM megatest WHERE cat IN ($in) ORDER BY RAND() LIMIT $limit |
||
Časová prodleva: 11 let
|
0