如何从数据库中随机抽取不重复数据

duoshipi8296 2016-06-01 09:06:25
在数据库查到一堆满足条件的数据,比如说100条,我每次取一条,怎么保证取出的数据是唯一的,在oracle中实现
...全文
1046 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
miqi_oracle 2019-05-17
  • 打赏
  • 举报
回复
按上面写的,查询的时候锁表就可以避免这种情况,不过可能有人要等待
Fecker 2019-05-16
  • 打赏
  • 举报
回复
把每次随机取出的数据放到set集合里,当再次取数据时就拿新取的数据与set集合里的数据相比较,如果不一样即可
AHUA1001 2019-05-16
  • 打赏
  • 举报
回复
比较低级的办法,是在某处,存储已经抽取的内容。
比较高级的办法,就设定某个规则,按照规则抽取数据。
duoshipi8296 2016-06-02
  • 打赏
  • 举报
回复
我讲的更详细一下吧,需求是这样的,用户来营业厅想办手机号,数据库比如说有100个满足条件的手机号,随机给客户分一个,在这个号码占用之前,其他营业员也在从数据库捞号码,就有几率取到同一个号码,怎么避免或者尽可能的减少这个概率,不能另建表,只能根据查询结果来操作
ghx287524027 2016-06-02
  • 打赏
  • 举报
回复
没太明白需求,是楼上说的那意思吗?
卖水果的net 2016-06-02
  • 打赏
  • 举报
回复
存储过程处理数据,直接用游标。 应用程序处理数据,先取到程序中,就可以了;
rick-he 2016-06-02
  • 打赏
  • 举报
回复
用distinct放到游标里,一个一个取不就可以了
weixin_31013737 2016-06-02
  • 打赏
  • 举报
回复
直接在查询后面增加for update锁定当条查询,别的就被人查询你拿出来的这条的,直到被释放
weixin_31013737 2016-06-02
  • 打赏
  • 举报
回复
你不重新说都还没明白
weixin_31013737 2016-06-01
  • 打赏
  • 举报
回复
可以把这100条方到一个临时表,取出过的数据用一个字段标记下,下次取得时候过滤!简单粗暴!

17,088

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧