PDO中的随机rowcount

时间:2010-07-22 15:44:38

标签: php oop pdo

如何使用PDO获得随机rowcount?我还在学习如何使用PDO,所以这就是我尝试过的,但它没有用,因为它没有随机化引号:

$sql = "SELECT COUNT(*) AS rows FROM thquotes;";

                 try {
                      $query = $this->_db->prepare($sql);
                      $query->execute();

                      **$rowcount = $query->rowCount();
                      $rand = rand(0,$rowcount-1);**

                      $sql = "SELECT cQuotes, vAuthor, cArabic, vReference 
                              FROM thquotes 
                              LIMIT $rand, 1";

我之前使用的代码没有PDO,但是有效:

**$rowcount = mysql_result($result, 0, 0);
$rand = rand(0,$rowcount-1);**

3 个答案:

答案 0 :(得分:4)

如果您打算处理大量数据,我建议不要使用ORDER BY Rand()。

有关解释/推理和替代方法,请参阅:Titov.Net - Do not use Order By RAND()的文章。

答案 1 :(得分:3)

你也可以用MySQL做到这一点:

$sql = "SELECT cQuotes, vAuthor, cArabic, vReference 
                              FROM thquotes 
                              ORDER BY RAND()
                              LIMIT 1";

答案 2 :(得分:2)

要以随机顺序获取行,请添加ORDER BY RAND()