博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQL中取随机取数量的数据

Posted on 2019-06-06 16:26  小猪课堂  阅读(12120)  评论(0编辑  收藏  举报

 方法一:

需求是要在首页随机的取出n条数据来推荐给用户,一开始想随机id,根据最大id和最小id来随机的,想想还是算了。

 

后面发现了还能order by rand(),顺利的解决了这个需求

select * from table where 1 order by rand() limit 10

 方法二:

想要在SQL随机抽取样本数,

主要思想:就是随机产生一列随机数,并对随机数进行排序,再进行抽取前1000行
下面举例:
# 随机从总样本中抽取1000个样本,保存在table_name表中

 

create table table_name as  # 创建一个表table_name
select b.* from(
select rand() as index_name, a.* from table_name_a as a #对表table_name_a赋值一个随机数) as b #将新表赋值为表b
order by b.index_name desc #对表b的随机数index_name进行排序
limit 1000 #对排序的取前1000

  

LIMIT简单介绍:
 select * from table_name

 limit 100,10  #提取从第101行数据样本,总共抽取10个样本