MySQL:你能指定一个随机限制吗?

时间:2013-12-23 18:02:57

标签: mysql sql random sql-limit

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

我希望能够做的是在查询中获取随机数量的结果,以便在没有任何服务器端脚本的插入子查询中使用。我希望能够作为假设插图运行的查询是:

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

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

2 个答案:

答案 0 :(得分:0)

这个怎么样:

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

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

答案 1 :(得分:0)

专门针对MySQL:

SET @i = 0;
SELECT * 
FROM users
WHERE (@i:=@i+1) < RAND()*1000
ORDER BY RAND();