Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 无随机顺序的随机极限_Mysql - Fatal编程技术网

Mysql 无随机顺序的随机极限

Mysql 无随机顺序的随机极限,mysql,Mysql,我试图按顺序选择记录,但随机选择的数量有限 SELECT * FROM tm_winners WHERE paid_out=0 ORDER BY DESC LIMIT RAND(4,8) 然而,似乎我不能有一个行的随机限制。我试图抓住4到8行,但不是随机的,只是随机限制 就个人而言,即使这不是最干净的方法,我也会在select语句之前设置一个var,并通过var进行限制 $randomVar = rand(4, 8); $sql = 'SELECT * FROM tm_winners WHER

我试图按顺序选择记录,但随机选择的数量有限

SELECT * FROM tm_winners WHERE paid_out=0 ORDER BY DESC LIMIT RAND(4,8)

然而,似乎我不能有一个行的随机限制。我试图抓住4到8行,但不是随机的,只是随机限制

就个人而言,即使这不是最干净的方法,我也会在select语句之前设置一个var,并通过var进行限制

$randomVar = rand(4, 8);
$sql = 'SELECT * FROM tm_winners WHERE paid_out=0 ORDER BY DESC LIMIT 0,'.$randomVar;
显然,如果希望在实际结果中具有随机性,可以在语句中重新引入rand()

希望能有帮助


Will

您必须使用准备好的语句,才能在LIMIT子句中使用可变金额

SET @lrand = FLOOR(4 + RAND() * (8 - 4));
PREPARE STMT FROM 'SELECT * tm_winners WHERE paid_out=0 ORDER BY DESC LIMIT ?';
EXECUTE STMT USING @lrand;