2010-11-17 20 views

回答

3

条款的顺序很重要。不要

SELECT * FROM Thoughts WHERE ups > 5 ORDER BY RAND() LIMIT 1

此外,在未来,发布错误你,你得到。 “一个错误”是惊人的不确定性。

+0

谢谢你,我没有标题是“一个错误”,你说的不知道是什么关于? – someWalri 2010-11-17 05:20:28

+0

@someWalri - “..但它返回一个错误。” ...这应该是被返回的确切的错误消息。 “错误”没有提供有用的信息。 – Donnie 2010-11-17 05:22:56

+0

啊,对不起。猜猜我匆忙!但是,谢谢,它现在起作用。 – someWalri 2010-11-17 05:28:31

1

ORDER BY RAND()可能会导致性能问题,而不是尝试以下办法做到:

// what NOT to do: 
$r = mysql_query("SELECT * FROM Thoughts WHERE ups > 5 ORDER BY RAND() LIMIT 1"); 

// much better: 

$r = mysql_query("SELECT count(*) FROM Thoughts WHERE ups > 5 "); 
$d = mysql_fetch_row($r); 
$rand = mt_rand(0,$d[0] - 1); 

    $r = mysql_query("SELECT * FROM Thoughts WHERE ups > 5 LIMIT $rand, 1");  
相关问题