背景:考試系統中需要重試題表中讀出20個選擇題,當然20個選擇題不能重複
數據庫:MySQL
根據平時寫的代碼很容易可以想到的有:
Map<Integer, Boolean> mark;
while(cnt < 20){
產生一個隨機編號
從表中選出主鍵等於隨機編號的數據
根據mark判斷是否已取過
取過:放入mark中cnt++,否則繼續
}
但平時寫的畢竟沒有跟數據庫打交道,那麼現在是否可以從數據庫的角度下手呢?
然後百度一下有:
select * from user order by RAND() limit 20;
MySql 這樣是可行的,其他數據庫就不知道了