如何随机读取字段值

hubdog 2000-02-19 10:27:00
我有一个数据库Sql server 6.5,有15000左右条记录
这个数据库有可能被删除或添加,会导致identity不连续(当然数据量很小)
我想随机读取一个关键字段比如dicword,每次读完,保证下次取这个字段时
不会和以前取到的字段重复(当然是在一次程序运行内不重复,程序关闭后又重新开始
,同时因为我是要做一个cgi,基于无状态的三层结构,每次连接后如何保持以前的状态
的,可以和数据库的设计结合起来讨论)最后我只想一次取到一个值,最好不返回很多条
数据集。

感谢你的参与,若嫌分少,可以侃价
...全文
272 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
feng 2000-02-20
radish:我的意思你没明白,程序中设立临时字段,每个用户在执行程序时,临时字段记录下他访问的字段,防止再次访问。程序结束字段消失。库中若有i个字段,程序运行时为i+1个,而对于用户来说只有i个字段.
  • 打赏
  • 举报
回复
radish 2000-02-20
如果有300个用户呢?表的字段数已经不够
  • 打赏
  • 举报
回复
feng 2000-02-20
radish:多用户可以为每个操作者设立一个临时字段吗,操作结束字段消失。
  • 打赏
  • 举报
回复
radish 2000-02-19
我不知道你的表结构,但我想你可以使用以下两种方法:
1、dicword是一简单可排序的字段,直接用sql *** from *** where dicword>tt
order by dicword
注:TT为每次查询后输出给用户的DICWORD的最大值.

2、如果dicword不好比较,取消identity,代以一数字字段(自己做++),然后使用1方法
  • 打赏
  • 举报
回复
hubdog 2000-02-19
to radish:
我用的是delphi来写Cgi,关键是如何保证不和以前的取到的值重复,可能需要从库设计上
入手
  • 打赏
  • 举报
回复
radish 2000-02-19
如果你用ASP,可以用ASP的分叶对象,另你也可以按关键字排序,每次查询是加一个条件即关键字大于某个值(pass the value to client brower)
  • 打赏
  • 举报
回复
radish 2000-02-19
如果你对容许不同用户返回的结果是一样(即查询结果仅和程序运行时间相关的话),并且修改不是很频繁的话,可以采用附加一张表的办法试试。
先用随机数的方法建立一张随机对应表,字段如下
1、序号
2、对应的关键字段
然后每次先从随机对应表取出关键字段在进行检索,如序号达到最大(取完了)就重新生成随机对应表
多用户不同随机序列一时没有什么好办法了。
敬请参考。
  • 打赏
  • 举报
回复
hubdog 2000-02-19
我要实现随机和不重复都满足,同时返回数据集尽量小
  • 打赏
  • 举报
回复
radish 2000-02-19
feng:两个用户查询怎么办呢?
  • 打赏
  • 举报
回复
feng 2000-02-19
可以定义一个BOOBLEAN字段,程序开始时全为假,每次读完变为真即可。
  • 打赏
  • 举报
回复
发帖
MS-SQL Server
加入

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
申请成为管理员
帖子事件
创建了帖子
2000-02-19 10:27
社区公告
暂无公告