náhodný select
13 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Chci se zeptat, jestli SQL podporuje nějaký příkaz, kterým bych náhodně nechal vybrat hodnotu. Př.:: mám tabulku se sloupcem id a potřebuju, aby se z toho id vybrala jakakoli hodnota - je mi jedno jaka. Nevi někdo jestli to jde? Díííííííík!
-
nevim jestli na to neco ma SQL ale myslim ze to neni potreba.. staci: rand a pak podle vracene hodnoty vytahnout hodnotu toho ID
-
rand?????????
-
rand ti vrati nahodny cislo... mrkni do manualu
-
díky!
-
rand uz teda kapu, ale jelikoz v mysql nejsem vubec zadny borec - ani nahodou - a nemam vek na to abych se domak toho, jak podle vracene hodnoty vytahnout hodnotu toho ID... potrbuji NAKOPNOUT!(hodně)
-
mozna takhle: select ... from ... order by rand() limit 1 (ale nikdy jsem to nepotreboval, takze nevim, jak moc to chodi)
-
<?php $vys = MySQL_Query("SELECT id FROM bauer"); $pocet_radku = MySQL_Num_Rows($vys); srand((double)microtime()*1000000); $nahoda = rand (1,$pocet_radku); $vysledek = MySQL_Query("SELECT url, pocet, soucet, kategorie, text FROM bauer WHERE id = '$nahoda'"); $zaznam = MySQL_Fetch_Array($vysledek); $url = $zaznam["url"]; $pocet = $zaznam["pocet"]; $soucet = $zaznam["soucet"]; $kategorie = $zaznam["kategorie"]; $text = $zaznam["text"]; ?> tak tdy to mas moje databaze se jmenuje bauer tak si to prerhod... URl, pocet, soucet, kategorie a text jsou slopce tak si to uprav
-
...coz je asi to nejprasactejsi reseni, co nejvic zatezuje jak mysql, tak i webserver. fakt, takhle bych to rozhodne nedelal.
-
no.. zas tak spatny to neni.. ale neco je tam dost zbytecny
-
supr - preberu! :-)
-
Reseni Petra Steinbauera je vcelku jednoduche, jen prvni dva radky bych vyresil takto : $pocet_radku = mysql_result(mysql_query("SELECT Count(*) FROM tabulka"),1); Vyrazne to usetri komunikaci mezi webserverem a mysql serverem, coz je tady na webzdarma obzvlaste podstatne. Jinak ten priklad neresi to, ze nektera id nemusi byt obsazena. Napr pokud smazete zaznam DELETE FROM tabulka WHERE id=5; Tak pristi vlozeny zaznam nebude mit id 5, ale uz 6. A pokud se nahodne vybere petka, nebude to odpovidat zadnemu zaznamu. Samozrejme tam lze dat kontrolu a generovat tak dlouho, az bude nejaky zaznam nalezen, ale to zvysuje provoz webserveru a mysql serveru, coz neni dobre. Pokud se k tomu prida, ze nechceme nahodne vybirat z cele tabulky, ale treba jen WHERE kategorie='3' tak se to cele jeste zkomplikuje. (viz problem na http://www.wz.cz/forum/read.php?f=5&i=1233&t=1233) Reseni pomoci jedine (nebo nekolika) sql query jsem bohuzel nenasel :-/
-
Tak jsem se zase pekne vypek. On to Petr Steinbauer dobre vi, - viz onen thread tady v diskuzi. Cili krome onoho urychleni komunikace mezi webserverem a mysql serverem muj predch. prispevek nic noveho nerika.