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

MySQL:Ein begrenztes Abfrageergebnis mischen?

Sie können rand() verwenden , aber die Leistung ist schrecklich

select * from users order by rand() limit 5; <-- slow

Ich würde vorschlagen, die Liste aller Benutzer-IDs in einem Serialisierungs-Array zu speichern und in einer Festplattendatei zwischenzuspeichern. (regelmäßige Aktualisierung)

Sie können es also mit PHP wieder deserialisieren und PHP array_rand verwenden um 5 zufällige Benutzer auszuwählen.

Um die vollständigen Informationen abzurufen, können Sie Folgendes tun

select * from users where user_id in(...); <-- very fast