0

可能重复:
MySQL 从 600K 行中快速选择 10 个随机行

网上有很多不同的例子,但我希望有人有一个适合我正在寻找的解决方案......当然我不能是唯一的!

我正在建立一个摄影网站,并希望在登录页面上显示 50 多个图像缩略图。踢球者是我希望它使用 PHP 随机显示图片并且没有重复。我还希望每张图片都有自己独特的 href 和 title 参数。

因此,我创建了一个 mySQL 表,其中包含:

id image_path, image_href, image_title

我想我可以轻松地自行调整图像的大小并将它们放在根目录的文件夹中,然后在 image_path 行中调用它。

有谁知道如何以最有效的方式做到这一点?我听说当数据库变大时 rand() 很糟糕。该数据库将增长到数以万计的图像。

如果您需要/想要澄清,请告诉我。

谢谢!!!

编辑:我可能在我的研究中遇到过答案,但我对 PHP 还是很陌生... :)

4

1 回答 1

7

您可以查询数据库,对结果进行排序RAND()并选择前 50 个:

SELECT id, image_path, image_href, image_title 
FROM table 
ORDER BY RAND()
LIMIT 50

这保证没有重复的结果,除非您的表本身有重复。

这个问题概述了一种更快的方法:MySQL select 10 random rows from 600K rows fast

于 2012-12-13T23:17:03.683 回答