挑战大富翁!!!!!!!!!!! (300分)

  • 主题发起人 主题发起人 wzs
  • 开始时间 开始时间
道歉吧! 我说的是实话! 心理话! 你开始说10000 条
别人解决了 你又说1000000000000000000 。。。 什么意思嘛 !
说白了 就是有点出尔反尔。 我开始可没骂你 你少用 ‘滚’ 字
要骂我不会客气的!
 
怎么吵起来了?
都是delphi的fans嘛
就算不用query,还可以用table嘛,一样的,
主要还是看你的数据库表格的索引设置的好不好了。
 
悟空1: 加上order by newid() 就能随机取了
非洲黑人: 就是10000条取下来时也的好长的时间,效率太低
而我的方法是在数据库端就解决了。
来交流我欢迎!
 
randomize;
select * from table1 where random(count(*));
 
用order by?
排序?岂不是更慢?还以为你有什么好方法呢。
我好像记得这样的咚咚是一个视图,不能edit呀(但愿我记错了)
 
:D影子D: 纸上谈兵!!!!!
 
哇,好大口气
 
order by newid() 就可以用于100000000000000000000000000000000条的记录,并轻而易举
的取得数据?
如果你做的到,就太好了
 
newid() 32位的GUID,号称全球惟一(微软吹的,不是我吹)
 
>select top 1 * from table1
>什么意思?
>用sql取得头部的1个记录?
>那么你怎么知道那是随机的???
我也想问……
 
你设计抽奖游戏呢?
如果象你说的数据库记录有足够多的话,Moveby 或select where 直接操作数据库表可能
不太妥当,简单的一句SQL可能不够,当然10000条记录没问题,
思路基本如楼上,可能需要建立一些辅助表,索引表以提高检索效率,或使用几级Random
函数,将数据库表记录随机分区段进行处理.以提高效率.
另外,每个数据库表都有一些自身特征,可能需要自己设计算法构造随机函数,
以保证投射均匀.如从全国人口记录中抽样代表参加铁路听证会,从电话号码中随机采访
考试座位安排等.需要预先设置条件等处理.
因此如果是小的数据库表10000-100000级,可以一句SQL应付,100000000000000级,就可能
没有一句SQL解决的好办法了.

 
select top 1 * from table1 order by newid()
 
WZS,你太自信了,这可不是好事,跟你说吧,上面的结是我已经在SQL 中试过的,你这个人
太过分,盲目自大!你以为这样就很了不起!!!!!!!·!
 
<<给你有10000000000000000000000000000条记录的表,你按上面说的试试!!!!
你很懒哟,你明说有10000万条呀现在又说有有10000000000000000000000000000,??????
 
不过有10000000000000000000000000000条也无所谓!
SELECT *
FROM dbo.f
WHERE (ID = CAST(RAND() * 10000000000000000000000000000 AS int))
一样OK!不过我不愿意再跟你打交道了。,你太狂,不知天外有天,人外有人!:哼!
 
看来你是个大笨鸟!
 
天真:SELECT *
FROM dbo.f
WHERE (ID = CAST(RAND() * 10000000000000000000000000000 AS int))
1:不能对任意表操作
2:必须有ID字段
3:该SQL有可能无记录返回,假设有1条的时候,就玩完了 呵呵
4:别生气,也许我的语气有些不对,惹你肝冒火。对不起啦,还的感谢你的大力支持!!!!
 
學習,咱不會.
 

Similar threads

后退
顶部