Autor Zpráva
Europsky_Dzigolo
Profil
mam sql prikaz
SELECT * FROM `tabulka` WHERE `hento`='toto' ORDER BY `id` DESC LIMIT 5

ak to zvyraznene vymazem, nezobrazi sa nic
ako mam napisat aby sa to nahodne zoradilo?
Nox
Profil
ORDER BY RAND()

když to vymažeš, nezobrazí se nic, protože ti tam zůstane ještě to "DESC"
nightfish
Profil
ak to zvyraznene vymazem, nezobrazi sa nic
protože ti tam zůstane to "DESC", které se váže k ORDER BY
můžeš zkusit ORDER BY rand(), ale to může být v závislosti na velikosti tabulky dost pomalá varianta...

EDIT: pozdě
joe
Profil
Pokud máš tabulku s malým počtem řádků
SELECT * FROM `tabulka` WHERE `hento`='toto' ORDER BY RAND() LIMIT 5

Pokud řádků máš hodně, pak použij toto
SELECT COUNT(*) FROM tabulka

V PHP vybereš náhodné číslo od 0 do tohoto počtu -1 a uložíš třeba do proměnné $start. Pak další dotaz bude
SELECT * FROM `tabulka` WHERE `hento`='toto' LIMIT $start, 5


EDIT: Opraveno.
Europsky_Dzigolo
Profil
diky vam
Europsky_Dzigolo
Profil
joe
SELECT COUNT(*) FROM tabulka

ale ved COUNT len spocita pocet hodnôt.. to nijak asi neurychli.. ci hej? nechapem
Alphard
Profil
joe:
Pokud si vzpomínám, není nutné generovat to v PHP, ale stačí v MySQL použít poddotaz a vybrat náhodné hodnoty ze sloupce, na kterém je index, typicky id.
Přiznám se, že ten LIMIT $start, 5 nechápu, takže jsem možná úplně mimo.

select * from tabulka where id in (select id from tabulka where `hento`='toto' order by rand() limit 5)


Doplňuji, už jsem to pochopil. .-) Je to dobrý nápad, ale použitelný jenom pokud nám nevadí, že všechny záznamy půjdou za sebou.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: