方法一:

需求是要在首页随机的取出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个样本

 方法一:

需求是要在首页随机的取出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个样本

相关文章:

  • 2022-12-23
  • 2021-12-05
  • 2021-11-04
  • 2021-05-21
  • 2022-12-23
  • 2021-07-29
  • 2022-12-23
  • 2021-12-10
猜你喜欢
  • 2021-06-13
  • 2022-12-23
  • 2022-12-23
  • 2021-11-07
  • 2022-12-23
相关资源
相似解决方案