可能的重复:
MySQL从600K行中快速中随机选择10行
网上有很多不同的例子,但我希望有人能找到一个适合我想要的解决方案。。。当然,我不可能是唯一一个!
我正在建立一个摄影网站,希望在登录页上显示50多个图像缩略图。关键是,我希望它能使用PHP随机显示图片,并且没有重复。我还希望每个图像都有自己的,唯一的href和标题参数。
因此,我创建了一个mySQL表,其中包含:
id image_path, image_href, image_title
我想我可以很容易地自己重新调整图像的大小,并将它们放在根目录中的一个文件夹中,然后在image_path行中调用它。
有人知道如何以最有效的方式做到这一点吗?我听说当数据库变大时,rand()很糟糕。该数据库将增长到数以万计的图像。
如果你需要/想要澄清,请告诉我。
谢谢!!!
编辑:我可能在研究中找到了答案,但我对PHP还很陌生…:)
您可以查询数据库,按RAND()
对结果进行排序,然后选择前50名:
SELECT id, image_path, image_href, image_title
FROM table
ORDER BY RAND()
LIMIT 50
这样可以保证不会出现重复的结果,除非表本身有重复项。
这个问题概述了一种更快的方法:MySQL从600K行快速中随机选择10行