This question already has answers here:
MySQL: Alternatives to ORDER BY RAND()
(7个答案)
5年前关闭。
我正在建立一个广告系统,我想知道随机显示横幅广告的最佳方法是什么?我正在使用PHP和MySQL,但对MySQL的RAND()不满意。
对于此示例,我使用了MySQLi ...但是,如您所见,使用PHP例如捕获随机数据是一个较长的过程。
长话短说...最好使用MySQL获取随机数据
(7个答案)
5年前关闭。
我正在建立一个广告系统,我想知道随机显示横幅广告的最佳方法是什么?我正在使用PHP和MySQL,但对MySQL的RAND()不满意。
最佳答案
最好使用MySQL的函数为您进行所有随机化处理……但是,如果由于未指定的原因而导致您的“不满意”,则可以使用这种方法。
$Query = $DB->prepare("SELECT ID FROM Tablename ORDER BY ID DESC LIMIT 1");
$Query->execute();
$Query->bind_result($MaxID);
$Query->fetch();
$Query->close();
$Random_ID = rand(0,$MaxID);
unset($Query);
$Query = $DB->prepare("/* Select your random banner WHERE ID=".$Random_ID."*/");
$Query->execute();
$Query->bind_result(/*Results to display*/);
$Query->fetch();
$Query->close();
// Continue to display the data pulled from the query
对于此示例,我使用了MySQLi ...但是,如您所见,使用PHP例如捕获随机数据是一个较长的过程。
长话短说...最好使用MySQL获取随机数据