[SQL ] sqlite隨機可以固定嗎?

作者: liu2007 (è–¯)   2023-10-23 11:57:12
我知道聽起來很矛盾
我有兩個元件,一個負責丟statement和offset,一個負責去資料庫撈這個statement offset後的前十個結果回傳。
主要是不想一次撈完丟過來,費時又費空間
所以想要根據一個statement ,想要看下十個結果就自己送出請求
但我突然想到若是我要random 順序的結果,如果我用原本的做法,肯定每次random 的結果不一樣,十個十個一直拉,拉到資料庫的最大資料個數結束後,整個頁面一定很多重複的資料,因為每次撈十個就重新洗牌一次,一定會有想同的結果出現在前十個。
想問有沒有可能從語法去改?
譬如說給一個種子,使得亂數產生的隨機順序一樣
但我查了一下sqlite的隨機沒有種子的機制
只能特例然後用程式語言的角度去解決嗎?
作者: LPH66 (-6.2598534e+18f)   2023-10-23 21:50:00
order by random() 其實並不省時喔, 因為它要為每筆資料產生一個隨機值再去排序, 你一定會跑過每筆資料這種一般的做法都是在 SQL 之外, 利用代表值 (如 PK) 排出一個隨機順序後, 再取範圍丟 SQL 查詢回傳保持某個決定的隨機順序這件事當然也就是在 SQL 之外達成
作者: liu2007 (è–¯)   2023-10-23 23:53:00
原來如此,我了解了,感謝提點
作者: glo6e (ezdodance)   2023-12-25 22:53:00

Links booklink

Contact Us: admin [ a t ] ucptt.com