2010-11-17 32 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");  
相關問題