我需要从查询结果中获取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
但我不知道使用正确偏移范围的记录数
我如何实现这一目标?
答案 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