Mit MySQL zufälligen Datensatz selektieren

Ich habe ja bereits zwei mal Beiträge geschrieben, wie man performant einen bzw. mehrere Datensätze per SQL selektieren kann. Heute möchte ich einen neuen, eleganteren Ansatz beschreiben, der allerdings etwas PHP benötigt (die anderen basierten allein auf MySQL).

Zufälligen Datensatz auswählen

Manchmal möchte man einen oder mehrere Datensätze einer Tabelle zufällig auswählen. Bei normalen Sortierungen kann man einen Index zur Bschleunigung setzen, aber bei RAND() funktioniert das nicht. Das kann beispielsweise sein, wenn viele Artikel zur Wahl stehen und allen mal die Chance gegeben werden soll auf der Startseite zu erscheinen. Also können wir ja einfach…