2013-02-09 28 views
0

我目前在php中使用EZSQL类来查询MySQL数据库。我试图从数据库中抓取随机记录,但是我想知道是否可以通过php来随机化结果,而不是使用sql查询本身。查询目前看起来是这样的:使用php而不是mysql查询随机化数据库结果

$results = $db->get_results("SELECT * FROM table ORDER BY RAND()"); 

foreach($results AS $result) 
{ 

//code here 

} 

而是我能不能抢,结果从该数据库,然后通过PHP随机呢?如果是这样,我该怎么做?

+2

['shuffle'(http://php.net/manual/en/function.shuffle.php) – 2013-02-09 23:15:39

+0

为什么要这么做?数据库中的随机化可能更快。 – 2013-02-09 23:21:37

+0

如果将涉及'LIMIT',您将返回到SQL的'RAND()',这很好。如果你认为'RAND()'是大数据库的问题(不是真的),那么你将不得不使用'LIMIT'来选择数十亿行。所以你有它:'ORDER BY RAND()'是你唯一的选择。 – 2013-02-10 00:15:24

回答

0

同意@shuffle,但如果你真的想使用PHP,我不会使用foreach;相反,采取$结果大小,得到0和长度-1之间的随机数,并使用它从阵列