可能重复:
MySQL: How to retrieve a random row or multiple random rows?
Pull 5 random records from mysql database
我的数据库中有一个很大的域列表,位于“网站”列下的“列表”表中。
大约有1.4亿行,我只需知道如何回应随机行。
基本上是这样的:
<?php include('directory/database.php'); ?>
WHATEVER CODE WORKS FOR GETTING A RANDOM DOMAIN FROM THE DATABASE
<?php
echo $domain;
?>
只有大量的记录,所以我需要知道最简单的方法就是随机选择并在页面上显示其中一个。谢谢!
答案 0 :(得分:0)
您绝对不想使用ORDER BY RAND()
。 MySQL必须构建一个临时表。如果你的表有一个唯一的id列,那么这样的东西要好得多:
SELECT * FROM `table`
WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` )
ORDER BY id LIMIT 1;
有关在php中运行良好的其他方法,请参阅this blog post。
注意:这只是重复my answer on this thread。