使用Rails怎麼寫這個查詢

2021-08-22 08:01:51 字數 522 閱讀 3732

我先作了題庫,我希望能夠從題庫中隨機選擇一定數目的題,並生成乙份試卷。

在隨機選擇一定數目的題的地方沒有找到比較好的方式:

rails好像沒有提供儲存過程的操作介面。

試題由於刪除等原因,id是不連續的。

我現在想到的方式有兩種:

1)將所有題目的id查詢出來放在乙個陣列中,然後產生若干個隨機數並去掉

重複元素作為陣列,從而選定題目,然後拼接sql語句進行查詢,這樣的缺點是查詢所有數目

的試題id放在陣列中,如果數目過多,這樣做很耗記憶體.(當然可以通過limit來

限制數量,但資料庫缺省會建立索引,查詢的時候會按照某種順序列出,後面的題

就沒有被選的機會了)

2)先查出題目的數目n,然後在1..n之間生成一定數目的隨機數,作為題目id,如果查詢到的

題目數目不夠,再隨機生成隨機數,再查詢生成,直到查詢到足夠的題目為止,這樣

做缺點是每一步生成隨機數還得以前的隨機數去除重複,並且查詢次數未知.

希望大家能給我乙個解決這個問題的更好的方案.

UI互動設計文件怎麼寫?整理這5個技巧

對於ui設計師而言,與平面設計師最大的區別就是他們所設計出來的作品更具互動性,正因為如此,優秀的ui設計師是企業競相爭搶的物件,薪資更是水漲船高。那麼剛入行不久的ui設計師如何撰寫出合格的互動文件呢?下面,我就給大家分享一些。1 文件封面 互動文件的封面如上圖,通常包括產品的名稱 logo 版本號以...

這問題怎麼解決啊?

這問題怎麼解決啊?你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進...

SUID 這賬怎麼算?

我們都知道linux裡面一切都是檔案。檔案擁有普通許可權rwx,特殊許可權suid,sgid,sbit等。本文分享一下suid幾個的小實驗,通過實驗我們可以更加深入的理解suid許可權,希望對於我們理解有幫助。首先,咱們都知道linux使用者 不論是超級使用者還是普通使用者 都可以更改自己的密碼。密...