看板 Database 關於我們 聯絡資訊
我知道聽起來很矛盾 我有兩個元件,一個負責丟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