来自MYSQL的查询限制

时间:2017-01-14 12:30:04

标签: mysql sql

我的数据库中有大约500K行。我想从1行到5000行获取随机行,其限制结果限制需要为100。

我目前的查询如下

'SELECT * FROM user where status='0' LIMIT 10,100'

我应该更改或使用什么来获取有限的随机行,这样我可以在没有内存消耗的情况下获得快速结果?

由于

2 个答案:

答案 0 :(得分:3)

数据库表是无序集合,因此您必须提供一些订单才能获得1到5000行(否则这些行将是1到5000行),可能基于用户ID。

一旦你有了这个,你可以限制子查询中的行并按rand()排序,并得到前100个像这样:

select *
from (select
        *
    from user
        where status = 0
    order by /* set of columns, may be user_id*/
    limit 1, 5000
) t order by rand() limit 100;

答案 1 :(得分:0)

此查询为您提供5000k行

中的任意100个随机行
rdp