小编典典

MySQL:随机播放有限的查询结果?

sql

假设我有一个用户表。我想要一个可以改组结果并仅显示5个用户的查询。我如何在不使用任何PHP的MySQL查询中做到这一点?


阅读 135

收藏
2021-03-23

共1个答案

小编典典

可以使用rand(),但是性能很差

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

我建议将所有用户ID的列表存储到序列化数组中,并缓存到磁盘文件中。(定期更新)

因此,您可以使用PHP取消对它的序列化,并使用PHParray_rand选择5个随机用户。

要获取全部信息,您可以执行以下操作

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