MySQL - получение из случайного столбца, но с указанием суммы - PullRequest
1 голос
/ 17 ноября 2010

Я хотел бы сделать это

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

... но возвращается ошибка. Вы знаете альтернативу? Я немного новичок в MySQL, спасибо.

Ответы [ 2 ]

3 голосов
/ 17 ноября 2010

Порядок пунктов важен. У

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

Кроме того, в будущем опубликуйте полученную вами ошибку. «Ошибка» удивительно неспецифична.

1 голос
/ 17 ноября 2010

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");    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...