有没有办法在 SQL(MySQL)中随机化一个限制数?
我想做的是在查询中获得随机数量的结果,以便在插入子查询中使用,而无需任何服务器端脚本。我希望能够作为假设说明运行的查询是:
SELECT id FROM users ORDER BY RAND() LIMIT RAND() * 1000
当然这不起作用,但有没有另一种方法来随机化限制数?有很多随机化一组有限结果的例子,但我在网上找不到任何关于设置随机限制的信息。
这个怎么样:
SELECT *
FROM users
ORDER BY RAND()
HAVING RAND() * 1000 < 10
该子句WHERE RAND() * 1000 < 10
以 1% 的概率随机选择包含每一行。它不完全是一个LIMIT variable
子句,但会做大致相同的事情。
特别是对于 MySQL:
SET @i = 0;
SELECT *
FROM users
WHERE (@i:=@i+1) < RAND()*1000
ORDER BY RAND();