Zaujímalo by ma, či je možné z výsledkov vyhľadávania načítať jeden náhodný riadok. Mám na mysli takýto dotaz:
SELECT mp.name,mp.icon,mp.id,mp.wspx,mp.wspy,ms.icon FROM maps_points as mp JOIN maps_section as ms ON(ms.id = mp.section)
Chcel by som získať jeden náhodný riadok z výsledkov generovaných z tohto dotazu. Je to možné s jedným dotazom mysql, alebo by som mal získať všetky výsledky a tento náhodne dostať v PHP?
odpovede:
2 pre odpoveď č. 1jednoduchý spôsob je pridať ORDER BY RAND() LIMIT 1
na dopyt. Zoznámte sa s niektorými dôvodmi, prečo to môže byť zlý nápad, napr.
- Prečo nepoužívam mysql ORDER BY RAND ()?
- MySQL: Alternatívy k OBJEDNÁVKE PODĽA RANDU ()
- Ako môžem optimalizovať funkciu MySQL ORDER BY RAND ()?
0 pre odpoveď č. 2
SELECT mp.name,mp.icon,mp.id,mp.wspx,mp.wspy,ms.icon
FROM maps_points as mp
JOIN maps_section as ms ON(ms.id = mp.section)
ORDER BY RAND() LIMIT 1
-1 pre odpoveď č. 3
Ok, tento som poznal, ale je tam lepšie arýchlejší spôsob, ako to urobiť? Myslím, že som už videl nejaké ďalšie prístupy, ale všetky sa týkali náhodného riadku z tabuľky a musím si vybrať náhodný riadok z nejakej sady výsledkov :)