Mysql 来自大查询结果的随机行
我需要从使用SQL select检索的查询结果中获取索引列上的1-2行,而不获取整个记录集 例如,我将使用查询检索10000条记录Mysql 来自大查询结果的随机行,mysql,random,row,Mysql,Random,Row,我需要从使用SQL select检索的查询结果中获取索引列上的1-2行,而不获取整个记录集 例如,我将使用查询检索10000条记录 SELECT * FROM table WHERE field 1>1 AND field1 < 10 但我只需要从这个查询中随机抽取一行,这与我的数据库的高负载有关 我可以用 SELECT * FROM table WHERE field 1>1 AND field1 < 10 LIMIT 100, 1 但我不知道记录numebr是否使
SELECT * FROM table WHERE field 1>1 AND field1 < 10
但我只需要从这个查询中随机抽取一行,这与我的数据库的高负载有关
我可以用
SELECT * FROM table WHERE field 1>1 AND field1 < 10 LIMIT 100, 1
但我不知道记录numebr是否使用正确的偏移范围
我如何才能实现这个目标?您可以使用ORDER BY RAND
SELECT * FROM table WHERE field1 > 1 AND field1 < 10 ORDER BY RAND() LIMIT 1
这将返回1个随机行,字段1在1和10之间首先限制您选择的记录如何
SELECT * FROM table WHERE field1 IN (CONVERT(RAND()*10,SIGNED),CONVERT(RAND()*10,SIGNED)) LIMIT 2
在具有10kk记录的数据库上,您将关闭服务器并释放所有用户-没错。然后您将需要使用本文中描述的两个查询:count not variant on big mysql查询结果,使用WHERE on 1kk row表计算calc需要几秒钟。我有一些想法,但我还不确定它们的正确性。我有字段1上的标准,我如何选择它?如果标准是一个范围,你可以创建一个随机数,将落在该范围内,但在这个选择中有很多行,即使我选择了标准,我应该选择随机行而不是第一行。无论如何,谢谢你也给了我一个有趣的想法。这里有很多想法: