2010-11-17 22 views

Répondre

3

L'ordre des clauses est important. Ne

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

En outre, à l'avenir, postez l'erreur que vous que vous obtenez. "Une erreur" est incroyablement non spécifique.

+0

Merci, et je n'ai pas l'intituler « Une erreur », ne sais pas ce que vous parlez sur? – someWalri

+0

@someWalri - "..mais il retourne une erreur." ... Cela aurait dû être le message d'erreur exact renvoyé. "une erreur" ne donne aucune information utile. – Donnie

+0

Ah, désolé à ce sujet. Je suppose que j'étais pressé! Mais merci, ça marche maintenant. – someWalri

1

commande par rand() peut provoquer des problèmes de performance, plutôt essayer de le faire de la manière suivante:

// 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");