实际上,ROUND((RAND()*(max-min))min)是MySQL做你想要的最好的方式.它也是ActionScript,JavaScript和Python中最好的方式.老实说,我更喜欢PHP的方式,因为它更方便.
因为我不知道你会返回多少行,我不能建议你使用PHP或MySQL是否更好,但如果你处理大量的值,你可能会更好使用MySQL
附录
所以有一个问题,在PHP或MySQL中是否更好.我不是进行关于原则的辩论,而是运行如下:
<?php
$c = mysql_connect('localhost', 'root', '');
if(!$c) die('!');
echo mysql_select_db('test', $c)?'Connection':'Failure';
echo PHP_EOL;
echo ':::::::::::::::::::::::::BEGINNING MYSQL RAND::::::::::::::::::::::::::::::'.PHP_EOL;
$start = microtime(1);
for( $i = 0; $i < 100000; $i++ )
{
$r = mysql_query( 'SELECT ROUND(RAND() * (200-10) + 10) FROM dual' );
$r = mysql_fetch_array( $r );
}
$end = microtime(1);
echo ($end - $start) . " for MySQL selec