作者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://webptt.com/cn.aspx?n=bbs/Database/M.1698033439.A.A59.html
1F:推 LPH66: order by random() 其实并不省时喔, 因为它要为每笔资料 10/23 21:50
2F:→ LPH66: 产生一个随机值再去排序, 你一定会跑过每笔资料 10/23 21:50
3F:→ LPH66: 这种一般的做法都是在 SQL 之外, 利用代表值 (如 PK) 排出 10/23 21:51
4F:→ LPH66: 一个随机顺序後, 再取范围丢 SQL 查询回传 10/23 21:51
5F:→ LPH66: 保持某个决定的随机顺序这件事当然也就是在 SQL 之外达成 10/23 21:52
6F:→ liu2007: 原来如此,我了解了,感谢提点 10/23 23:53
7F:→ glo6e: 推 12/25 22:53