Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Random() in MySQL?

SELECT *
FROM X
WHERE flags = 0
ORDER BY rand()
LIMIT 1

Dadurch wird 1 zufällige Zeile abgerufen. Ersetzen Sie 1 durch N, um N zufällige Zeilen zu erhalten.

Vorbehalt:Wie andere darauf hingewiesen haben, kann dies langsam sein, da ein vollständiger Tabellenscan erforderlich ist. Früher habe ich das mit DB2 gemacht, wo dies perfekt für Tabellen mit Hunderttausenden von Zeilen funktionierte, aber gemäß dem Link in tereškos Antwort , MySQL scheint sich viel schneller zu verschlechtern.