從數據庫中隨機讀出n條不重複的記錄

背景:考試系統中需要重試題表中讀出20個選擇題,當然20個選擇題不能重複

數據庫:MySQL

根據平時寫的代碼很容易可以想到的有:

Map<Integer, Boolean> mark;
while(cnt < 20){
	產生一個隨機編號
	從表中選出主鍵等於隨機編號的數據
	根據mark判斷是否已取過
	取過:放入mark中cnt++,否則繼續
}

但平時寫的畢竟沒有跟數據庫打交道,那麼現在是否可以從數據庫的角度下手呢?

然後百度一下有:

 select * from user order by RAND() limit 20;
MySql 這樣是可行的,其他數據庫就不知道了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章