Häufig möchte man einen oder mehrere zufällige Datensätze aus einer mySQL Datenbank auslesen. Man könnte nun alle Datensätze auslesen und diese dann mit PHP randomisieren und limitieren, dies wäre jedoch performancetechnischer Wahnsinn.
Eine Einfache Lösung ist, dass man bereits alles in der mySQL Abfrage erledigt:
$x = 3; $sql = "SELECT spalte1, spalte2, spalte3 FROM tabelle ORDER BY RAND() LIMIT ".$x; $query = mysql_query($sql); |
Durch „ORDER BY RAND()“ werden zufällige Datensätze aus der mySQL Datenbank ausgelesen. LIMIT $x bestimmt wieviele solcher Datensätze ausgegeben werden.
In unserem Falle werden nun 3 zufällige Datensätze aus der mySQL Datenbank ausgegeben.
Schön knapper und informativer Beitrag.
Zwar nicht die performanteste Lösung, aber definitiv die übersichtlichste, welche wohl erst ab einer (gefilterten) Datenmenge von >10.000 deutlich langsamer als eine LIMIT-Grenzen des Queries mit PHP ist.
Danke dafür… für mein Projekt reicht dein Code allemal. =)