klamm-Forum

klamm-Forum (https://www.klamm.de/forum/)
-   FAQ und Archiv (https://www.klamm.de/forum/faq-und-archiv-64/)
-   -   [MySQL] Zufällig einen oder mehrere Datensätze auswählen (https://www.klamm.de/forum/f64/mysql-zufaellig-einen-oder-mehrere-datensaetze-auswaehlen-2191.html)

theHacker 29.04.2006 16:01:41

[MySQL] Zufällig einen oder mehrere Datensätze auswählen
 
Oft kommt es vor, dass man keinen bestimmten, sondern einen zufälligauswählen möchte. z.B. Auswählen eines Werbebanners, User of the day, ...

Hierzu gibt es die MySQL-Funktion RAND().
Infos hier: http://dev.mysql.com/doc/mysql/en/Ma...functions.html

Beispiele:
Auswählen eines zufälligen Werbebanners
Code:

SELECT bannerurl, bannercode FROM werbebanner ORDER BY RAND() LIMIT 1
Auswählen von 10 Usern, die 50 oder mehr Posts im Forum haben
Code:

SELECT userid, username FROM users WHERE posts>=50 ORDER BY RAND() LIMIT 10
Man kann zusätzlich noch ein Argument in die Klammer setzen, wie man es von PHP mit srand() bzw. mt_srand() gewohnt ist:
Code:

  SELECT something FROM somewhere ORDER BY RAND(UNIX_TIMESTAMP()*UNIX_TIMESTAMP()) LIMIT 1
Einen Zufälligen Banner aus der Tabelle 'Banner' der nicht in 'Visited' steht
Code:

SELECT Banner.id FROM Banner LEFT JOIN Visited USING (id) WHERE Visited.id IS NULL ORDER BY RAND()


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43:11 Uhr.