0

有没有办法在 SQL(MySQL)中随机化一个限制数?

我想做的是在查询中获得随机数量的结果,以便在插入子查询中使用,而无需任何服务器端脚本。我希望能够作为假设说明运行的查询是:

SELECT id FROM users ORDER BY RAND() LIMIT RAND() * 1000

当然这不起作用,但有没有另一种方法来随机化限制数?有很多随机化一组有限结果的例子,但我在网上找不到任何关于设置随机限制的信息。

4

2 回答 2

0

这个怎么样:

    SELECT * 
      FROM users
     ORDER BY RAND()
     HAVING RAND() * 1000 < 10

该子句WHERE RAND() * 1000 < 10以 1% 的概率随机选择包含每一行。它不完全是一个LIMIT variable子句,但会做大致相同的事情。

于 2013-12-23T18:36:33.100 回答
0

特别是对于 MySQL:

SET @i = 0;
SELECT * 
FROM users
WHERE (@i:=@i+1) < RAND()*1000
ORDER BY RAND();
于 2013-12-23T18:42:14.653 回答