社区
数据库(包含打印,安装,报表)
帖子详情
数据库记录排除
dingyanwei
2009-12-12 05:15:25
大家有没有记录排除方面的技巧啊?
比如:数据库中有1万条记录,我要随机多次从里面抽取2000条记录,第一次好说随便找500个抽出来了,第二次要排除第一次的500条记录,以此类推,越往后越麻烦,我现在的方法是where条件排除。
谁有好办法。
数据库要多人同时操作,最多可能要超过1000人并发操作
...全文
205
41
打赏
收藏
数据库记录排除
大家有没有记录排除方面的技巧啊? 比如:数据库中有1万条记录,我要随机多次从里面抽取2000条记录,第一次好说随便找500个抽出来了,第二次要排除第一次的500条记录,以此类推,越往后越麻烦,我现在的方法是where条件排除。 谁有好办法。 数据库要多人同时操作,最多可能要超过1000人并发操作
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
41 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dingyanwei
2009-12-14
打赏
举报
回复
http://topic.csdn.net/u/20091214/11/f09167b7-af65-4a45-9898-20b2a5caabc4.html
再开一贴用于讨论in的
king06
2009-12-14
打赏
举报
回复
[Quote=引用 36 楼 dingyanwei 的回复:]
引用 35 楼 jhone99 的回复:
每次这样取数据
select *
from mytable
where id not in(select 已抽取id from 抽取记录表 where 客户='u1'
*****************************************
然后把该用户u1及本次用的id加入 抽取记录表
确实是我想要的结果,不过并发过多的话,这种操作不知道对服务器的压力如何。
我总想要一种没有写操作的方式,不过应该是不太可能了。
[/Quote]
跟加标志位的压力一样...也需要写数据库,这个在所难免的(已抽取id不就是要记录的嚒)
只能加标识,按人员来轮询;
查询条件可以为固定,倒是可以用记录集的requery 方法来操作
阿泰
2009-12-14
打赏
举报
回复
添加个记录表是必要的
如果原始数据表里有一个自增ID主键的话,那更好处理些。
设置可以不用记录表。
在程序中控制即可
比如第一次取Select * From ID<=500,第二次取Select * From ID>500 and ID=1000
不过也最好还是在表中记录一下,防止程序异常终止造成问题。
这样的好处是只要记录一个端点就可以了,不用记录一堆编号。而且因为不用IN或Not IN,效率会高一些。
jhone99
2009-12-14
打赏
举报
回复
如果是一次性的,可以全部记录读取加到集合里,用过的从集合里删除
如果不是一次性的,用户本级建一个excel表或文件,这样不会对数据库操作,但实际还不如直接对数据库操作的效率
hwmys
2009-12-14
打赏
举报
回复
看来还是没整明白
dingyanwei
2009-12-14
打赏
举报
回复
[Quote=引用 35 楼 jhone99 的回复:]
每次这样取数据
select *
from mytable
where id not in(select 已抽取id from 抽取记录表 where 客户='u1'
*****************************************
然后把该用户u1及本次用的id加入 抽取记录表
[/Quote]
确实是我想要的结果,不过并发过多的话,这种操作不知道对服务器的压力如何。
我总想要一种没有写操作的方式,不过应该是不太可能了。
jhone99
2009-12-14
打赏
举报
回复
每次这样取数据
select *
from mytable
where id not in(select 已抽取id from 抽取记录表 where 客户='u1'
*****************************************
然后把该用户u1及本次用的id加入 抽取记录表
jhone99
2009-12-14
打赏
举报
回复
建议新建一个表,设两个字段
表名:抽取记录表
字段:已抽取id 客户
数据: 00005 u1
00056 u1
03200 u1
00103 u1
00050 u1
01056 u1
……
03020 u2
00111 u2
10050 u2
01010 u2
……
bancxc
2009-12-13
打赏
举报
回复
10000条数据 一次抽出500 也就抽个20次就完事了
dingyanwei
2009-12-13
打赏
举报
回复
0楼描述是有点容易发生歧义,不好意思了。
dingyanwei
2009-12-13
打赏
举报
回复
前面解释过了,每个人抽取不能重复,但人与人之间的没有关系。
也就是每个客户端对应的都是2w,要不然1000人操作,一个人抽取1000个记录,2w个是不够的。
阿泰
2009-12-13
打赏
举报
回复
[Quote=引用 28 楼 dingyanwei 的回复:]
引用 25 楼 babyt 的回复:
引用 24 楼 dingyanwei 的回复:
引用 23 楼 ybh37 的回复:
引用楼主 dingyanwei 的回复:
....
你说的标志位是建立一个字段用来标记已经抽取过的意思吗?
如果是的话,
客户1,抽取并标记了这个字段
那么客户2抽取时怎么办?
如果再增加一个字段用来标记是哪个客户抽取的,那么这个字段在标记为“客户1”的时候
客户2怎么办?是更新客户1为客户2还是,等待客户1完成后再标记?
[/Quote]
这个描述跟你的开题描述不大一样。当然,也可能是我理解不透彻,重新梳理一下。
比如1w条记录,x个用户操作。
是每个用户都要取到这1w条记录进行自己的操作
还是大家都一起操作这1w条,
比如a取掉以后500条之后,那下次a取的时候肯定是从剩下的9500中去取。
但是如果是b第一次取的时候,他是从a取剩下的9500条里取,还是让需要从最初的1w条里取?
dingyanwei
2009-12-13
打赏
举报
回复
[Quote=引用 29 楼 patrickkong 的回复:]
加个table。
[/Quote]
具体说说,要考虑有1000人可能同时操作
帝企鹅已被占用
2009-12-13
打赏
举报
回复
加个table。
dingyanwei
2009-12-13
打赏
举报
回复
[Quote=引用 25 楼 babyt 的回复:]
引用 24 楼 dingyanwei 的回复:
引用 23 楼 ybh37 的回复:
引用楼主 dingyanwei 的回复:
大家有没有记录排除方面的技巧啊?
比如:数据库中有1万条记录,我要随机多次从里面抽取2000条记录,第一次好说随便找500个抽出来了,第二次要排除第一次的500条记录,以此类推,越往后越麻烦,我现在的方法是where条件排除。
谁有好办法。
数据库要多人同时操作,最多可能要超过1000人并发操作
同意21楼的办法
在表中加一个标志位,选过的置一个标志不就完了吗?
并发啊并发,看清楚并发
并发并不会影响到这个标志位的添加。
数据库自己能处理这些并发的,处理不了他会排队。
教之初随便做个简单测试就好,呵呵。
比如就取500条,然后做个标志位。
而不是纯粹靠想的。 :)
[/Quote]
你说的标志位是建立一个字段用来标记已经抽取过的意思吗?
如果是的话,
客户1,抽取并标记了这个字段
那么客户2抽取时怎么办?
如果再增加一个字段用来标记是哪个客户抽取的,那么这个字段在标记为“客户1”的时候
客户2怎么办?是更新客户1为客户2还是,等待客户1完成后再标记?
lxq19851204
2009-12-13
打赏
举报
回复
[Quote=引用 26 楼 myjian 的回复:]
我是路过的,请无视我....................
[/Quote]]
....................
嗷嗷叫的老马
2009-12-13
打赏
举报
回复
我是路过的,请无视我....................
阿泰
2009-12-13
打赏
举报
回复
[Quote=引用 24 楼 dingyanwei 的回复:]
引用 23 楼 ybh37 的回复:
引用楼主 dingyanwei 的回复:
大家有没有记录排除方面的技巧啊?
比如:数据库中有1万条记录,我要随机多次从里面抽取2000条记录,第一次好说随便找500个抽出来了,第二次要排除第一次的500条记录,以此类推,越往后越麻烦,我现在的方法是where条件排除。
谁有好办法。
数据库要多人同时操作,最多可能要超过1000人并发操作
同意21楼的办法
在表中加一个标志位,选过的置一个标志不就完了吗?
并发啊并发,看清楚并发
[/Quote]
并发并不会影响到这个标志位的添加。
数据库自己能处理这些并发的,处理不了他会排队。
教之初随便做个简单测试就好,呵呵。
比如就取500条,然后做个标志位。
而不是纯粹靠想的。 :)
dingyanwei
2009-12-13
打赏
举报
回复
[Quote=引用 23 楼 ybh37 的回复:]
引用楼主 dingyanwei 的回复:
大家有没有记录排除方面的技巧啊?
比如:数据库中有1万条记录,我要随机多次从里面抽取2000条记录,第一次好说随便找500个抽出来了,第二次要排除第一次的500条记录,以此类推,越往后越麻烦,我现在的方法是where条件排除。
谁有好办法。
数据库要多人同时操作,最多可能要超过1000人并发操作
同意21楼的办法
在表中加一个标志位,选过的置一个标志不就完了吗?
[/Quote]
并发啊并发,看清楚并发
咸清
2009-12-13
打赏
举报
回复
[Quote=引用楼主 dingyanwei 的回复:]
大家有没有记录排除方面的技巧啊?
比如:数据库中有1万条记录,我要随机多次从里面抽取2000条记录,第一次好说随便找500个抽出来了,第二次要排除第一次的500条记录,以此类推,越往后越麻烦,我现在的方法是where条件排除。
谁有好办法。
数据库要多人同时操作,最多可能要超过1000人并发操作
[/Quote]
同意21楼的办法
在表中加一个标志位,选过的置一个标志不就完了吗?
加载更多回复(21)
小程序列表数据分页加载、一次性请求全部
数据库
记录
,小程序分页功能实现
一、小程序一次性请求全部
数据库
记录
1.1 云开发实现 1.2 非云开发实现(java、php、python...) 二、小程序列表数据分页加载 2.1 云开发实现 2.2 非云开发实现(java、php、python...) 三、优化 优化提示:加载中...
mysql查询
数据库
修改
记录
_11. 查询
数据库
各种历史
记录
在SQL Server
数据库
中,从登陆开始,然后做了什么操作,以及
数据库
里发生了什么,大多都是有
记录
可循的,但是也有一些确实无从查起。一.
数据库
启动
记录
1.最近一次启动SQL Server的时间select sqlserver_start_time ...
查询
数据库
各种历史
记录
查询
数据库
各种历史
记录
在SQL Server
数据库
中,从登陆开始,然后做了什么操作,以及
数据库
里发生了什么,大多都是有
记录
可循的,但是也有一些确实无从查起。 一.
数据库
启动
记录
1.最近一次启动SQL Server...
mysql查询删除的数据历史
记录
_查询
数据库
各种历史
记录
在SQL Server
数据库
中,从登陆开始,然后做了什么操作,以及
数据库
里发生了什么,大多都是有
记录
可循的,但是也有一些确实无从查起。一.
数据库
启动
记录
1.最近一次启动SQL Server的时间select sqlserver_start_time ...
13.PG
数据库
开启日志
记录
功能
开启日志
记录
功能,能够方便分析
数据库
的报错信息,慢日志,SQL执行
记录
等。当把这个选项和log_statement一起使用时,已经被log_statement
记录
的语句文本不会在此重复
记录
。注意:如果log_duration为on并且log_min_...
数据库(包含打印,安装,报表)
1,216
社区成员
55,954
社区内容
发帖
与我相关
我的任务
数据库(包含打印,安装,报表)
VB 数据库(包含打印,安装,报表)
复制链接
扫一扫
分享
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章