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

你可能感兴趣的:(mysql)