作者liu2007 (薯)
看板Database
標題[SQL ] sqlite隨機可以固定嗎?
時間Mon Oct 23 11:57:12 2023
我知道聽起來很矛盾
我有兩個元件,一個負責丟statement和offset,一個負責去資料庫撈這個statement offset後的前十個結果回傳。
主要是不想一次撈完丟過來,費時又費空間
所以想要根據一個statement ,想要看下十個結果就自己送出請求
但我突然想到若是我要random 順序的結果,如果我用原本的做法,肯定每次random 的結果不一樣,十個十個一直拉,拉到資料庫的最大資料個數結束後,整個頁面一定很多重複的資料,因為每次撈十個就重新洗牌一次,一定會有想同的結果出現在前十個。
想問有沒有可能從語法去改?
譬如說給一個種子,使得亂數產生的隨機順序一樣
但我查了一下sqlite的隨機沒有種子的機制
只能特例然後用程式語言的角度去解決嗎?
-----
Sent from JPTT on my Asus ASUS_X00TDB.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.30.1 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1698033439.A.A59.html
推 LPH66: order by random() 其實並不省時喔, 因為它要為每筆資料 10/23 21:50
→ LPH66: 產生一個隨機值再去排序, 你一定會跑過每筆資料 10/23 21:50
→ LPH66: 這種一般的做法都是在 SQL 之外, 利用代表值 (如 PK) 排出 10/23 21:51
→ LPH66: 一個隨機順序後, 再取範圍丟 SQL 查詢回傳 10/23 21:51
→ LPH66: 保持某個決定的隨機順序這件事當然也就是在 SQL 之外達成 10/23 21:52
→ liu2007: 原來如此,我了解了,感謝提點 10/23 23:53
→ glo6e: 推 12/25 22:53