方法一:
需求是要在首頁隨機的取出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個樣本