大查询结果中的随机行
我需要从索引列上使用 SQL select 检索的查询结果中获取 1-2 行,而不获取整个记录集。
例如,我将使用查询检索 10000 条记录
SELECT * FROM table WHERE field 1>1 AND field1 < 10
,但由于数据库的高负载,我只需要此查询中的 1 个随机行。
我可以使用
SELECT * FROM table WHERE field 1>1 AND field1 < 10 LIMIT 100, 1
但我不知道记录数来使用正确的偏移范围
我怎样才能实现这个目标?
I need to get 1-2 rows from query result retrived with SQL select on indexed columns without getting the whole record set.
For example I will retrieve 10 000 records using query
SELECT * FROM table WHERE field 1>1 AND field1 < 10
but I need only 1 random row from this query regarding to highload of my database.
I can use
SELECT * FROM table WHERE field 1>1 AND field1 < 10 LIMIT 100, 1
But I don't know records numebr to use correct offset range
How can I achieve this goal?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 ORDER BY RAND()
这将返回 1 个随机行,其中 field1 在 1 到 10 之间
You could use ORDER BY RAND()
This will return 1 random row with field1 in between 1 and 10
首先限制您选择的记录怎么样?
How about restricting the records you select in the first place?