MySQL: Zufällige Datensätze ermitteln
SQL-Datenbanken sind Meister der Ordnung. Manchmal möchte man aber bewusst zufällige Ergebnisse erzielen. Zum Beispiel ist es für ein Content Managent System ein nettes Feature, wenn man in Kurzform eine zufällige Auswahl von Artikel präsentiert bekommt.
Bei MySQL ist so ein Ergebnis einfach zu erzielen.
Der Befehl ORDER BY bekommt als weitere Angabe üblicherweise eine oder mehrere Spalten mitbekommt, die die Sortierung bestimmen. Der Befehl akzeptiert an dieser Stelle aber auch die Funktion RAND(). Drei zufällige ausgewählte Artikel aus einer Tabelle "news" fördert beispielsweise folgendes Kommando zutage:
SELECT * FROM news ORDER BY RAND() LIMIT 3
Bei Tabellen mit sehr vielen Datensätzen ist diese Methode allerdings aufwändig, da MySQL für jeden Datensatz ein eigene Zufallszahl erzeugen muss.
http://www.nils-haldenwang.de/webentwicklung/mysql-zufalligen-datensat
z-nach-relativer-haufigkeit-auswahlen-ohne-rand
Dort gibt es einen kurzen Artikel, wie man das auch ohne die MySQL
Funktion RAND() hinbekommen kann.
[nohfreak | 15.03.2009]
Antworten
Bedingungen für die Kommentareingabe
Hinweis
Add to Del.icio.us