如何将数据库调用限制为随机数加5个随机数?

时间:2015-04-10 22:50:59

标签: php mysql random

我需要一个随机数限制为1-90,包括在内。所以无论随机数是多少,我都会得到当前随机数+5。

$query2 = $xxx->query("SELECT * FROM tablename ORDER BY tableid LIMIT FLOOR(RAND() * 90)  + 1, (FLOOR(RAND() * 90)  + 1) + 5");

1 个答案:

答案 0 :(得分:0)

没有理由两次拨打RAND()。 正如limit所说:

  

使用两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量为0(不是1):

LIMIT offset, max rows

所以你可以做到

LIMIT FLOOR(RAND() * 90) + 1, 5

另外考虑到偏移是从零开始的,你确定你想要1-90而不是0-90吗?


也可以生成数字php-size

$rand = rand(1, 90);
// if your $xxx->query supports positional parameters
$query2 = $xxx->query('SELECT ... LIMIT ?,?', $rand, $rand + 5);
// or without it
$query2 = $xxx->query(sprintf('SELECT ... LIMIT %d,%d', $rand, $rand + 5));