如何回应数据库中的随机行?

时间:2012-11-25 03:08:37

标签: php mysql

  

可能重复:
  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;
?>

只有大量的记录,所以我需要知道最简单的方法就是随机选择并在页面上显示其中一个。谢谢!

1 个答案:

答案 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