来自大查询结果的随机行

时间:2010-08-17 11:56:49

标签: mysql random row

我需要从查询结果中获取1-2行,并在索引列上使用SQL select而不获取整个记录集。

例如,我将使用查询

检索10 000条记录
SELECT * FROM table WHERE field 1>1 AND field1 < 10

但是我在这个查询中只需要一个关于数据库高负载的随机行。

我可以用

SELECT * FROM table WHERE field 1>1 AND field1 < 10 LIMIT 100, 1

但我不知道使用正确偏移范围的记录数

我如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

您可以使用ORDER BY RAND()

SELECT * FROM table WHERE field1 > 1 AND field1 < 10 ORDER BY RAND() LIMIT 1

这将返回1个随机行,其中field1介于1和10之间

答案 1 :(得分:0)

如何限制您首先选择的记录?

SELECT * FROM table WHERE field1 IN (CONVERT(RAND()*10,SIGNED),CONVERT(RAND()*10,SIGNED)) LIMIT 2