我需要一个随机数限制为1-90,包括在内。所以无论随机数是多少,我都会得到当前随机数+5。
$query2 = $xxx->query("SELECT * FROM tablename ORDER BY tableid LIMIT FLOOR(RAND() * 90) + 1, (FLOOR(RAND() * 90) + 1) + 5");
答案 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));