`
limon87
  • 浏览: 68395 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

order by rand() 的代替

阅读更多

使用 ORDER BY RAND():$r = mysql_query("SELECT username FROM user ORDER BY RAND() LIMIT 1");  

替换为:

 

$r = mysql_query("SELECT count(*) FROM user");  
$d = mysql_fetch_row($r);  
$rand = mt_rand(0,$d[0] - 1);  
  
$r = mysql_query("SELECT username FROM user LIMIT $rand, 1");  

// what NOT to do:
$r = mysql_query("SELECT username FROM user ORDER BY RAND() LIMIT 1");

// much better:

$r = mysql_query("SELECT count(*) FROM user");
$d = mysql_fetch_row($r);
$rand = mt_rand(0,$d[0] - 1);

$r = mysql_query("SELECT username FROM user LIMIT $rand, 1");

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics