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

看板Database (資料庫)作者 (薯)時間6月前 (2023/10/23 11:57), 編輯推噓1(106)
留言7則, 3人參與, 4月前最新討論串1/1
我知道聽起來很矛盾 我有兩個元件,一個負責丟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

10/23 21:50, 6月前 , 1F
order by random() 其實並不省時喔, 因為它要為每筆資料
10/23 21:50, 1F

10/23 21:50, 6月前 , 2F
產生一個隨機值再去排序, 你一定會跑過每筆資料
10/23 21:50, 2F

10/23 21:51, 6月前 , 3F
這種一般的做法都是在 SQL 之外, 利用代表值 (如 PK) 排出
10/23 21:51, 3F

10/23 21:51, 6月前 , 4F
一個隨機順序後, 再取範圍丟 SQL 查詢回傳
10/23 21:51, 4F

10/23 21:52, 6月前 , 5F
保持某個決定的隨機順序這件事當然也就是在 SQL 之外達成
10/23 21:52, 5F

10/23 23:53, 6月前 , 6F
原來如此,我了解了,感謝提點
10/23 23:53, 6F

12/25 22:53, 4月前 , 7F
12/25 22:53, 7F
文章代碼(AID): #1bDUyVfP (Database)
文章代碼(AID): #1bDUyVfP (Database)