Pra*_*ala -1 mysql random-sample
如何使用MySQL随机选择每个用户标识列的5%行?
也就是说,mytable包含userid列,我想随机检查每个用户5%的输入行.因此查询应返回每个用户行的5%.
你可以说:
SELECT * FROM mytable ORDER BY RAND() LIMIT 5
Run Code Online (Sandbox Code Playgroud)
如果你知道表中有100行.
如果您不知道,可以先尝试此查询以查找:
SELECT COUNT(*) FROM mytable
Run Code Online (Sandbox Code Playgroud)
否则,你也可以尝试:
SELECT * FROM mytable WHERE RAND() < 0.05 ORDER BY RAND()
Run Code Online (Sandbox Code Playgroud)
这选择了大约5%的所有行(但它有点随机,因为它基本上选择了5%的几率的行).
否则,您可以使用子查询:
SELECT * FROM mytable ORDER BY RAND() LIMIT (SELECT COUNT(*) FROM mytable)
Run Code Online (Sandbox Code Playgroud)