转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Access >> 正文
ASP&SQL让select查询结果随机排序的实现方法         ★★★

ASP&SQL让select查询结果随机排序的实现方法

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1882 更新时间:2011/9/3 15:19:58

ASP&SQL让select查询结果随机排序的实现方法,因为武汉SEO闵涛要将自己的武汉SEO博客的文章随机显示在文章页右下角,就是想让查询的结果随机排序一下。MSSQL很好解决,ACCESS就不是很好办了,经过闵涛的多时研究,最后解决了问题。方案如下:

  只是在ORDER BY 后面加上一些东西。

   注:也许只适用与Access哦,这个只在Access环境中测试通过。  

   "SELECT * FROM tableName ORDER BY right(cstr(rnd(-int(rnd(-timer())*100+numID)))*1000*Now(),2)"

   关键是后面的order by 子句,中间的numID必须是数据库里面已经存在的字段,加上Now()是为了随机结果更有变化性。  

  至于在SqlServer中和下面提出的一样使用Rnd(字段)、\NewId()函数既可

    另外贴一下别人的方法,我没有试过,你可以参考一下原理:

ASP+ACCESS随机排序,每次刷新显示顺序都不同
程序需要这样一个功能,选取50个数据,然后对这50个数据进行随机排序,注意:从数据库中读取这50个数据的时候不是随机读取,而是读取出来以后再对这50个数据随机排序。
  记得还是上大学的时候学过这种排序方法,当时书上使用的时候Rnd()和NewID()两个SQL语句内置函数,按照自己的想法这样写“Select * FROM Table Order By  Rnd()”和“Select * FROM Table Order By  NewID()”都不好用,结果是排序第一次是随机的,然后我再刷新页面这个顺序就不变了,没有达到预期的目的。

  上网搜了搜(Google真是好东西),才发现Rnd()和NewID()两个内置函数只有在SQL Server中有效,在Access中无效。搜索解决办法的时候也没有找到比较有建设性的解决办法,大多数都是建议用SQL语句查询出全部记录,然后在ASP中进行随机排序。这种做法不大喜欢,因为编写ASP代码进行排序需要建立一个包含50条数据的数组,挺影响效率的,人多了一起访问这个页面肯定影响速度,还是期待能在ACCESS中排完序直接读出来。

ASP/Visual Basic代码
1.Randomize()   
2.intRandomNumber=Int(1000*Rnd)+1                  
3.sql="Select * FROM Table ORDER BY Rnd("&-1*(intRandomNumber)"*id)"  
  上面代码中ID是自动编号,在SQL server中使用ORDER BY Rnd(ID),在ACCESS中这样导致排序只会变动一次,而这个每次刷新都会重新排序!

    闵涛就关于ASP&SQL让select查询结果随机排序的实现方法介绍到这儿了,欢迎到闵涛的博客留言给我以及宝贵的意见和建议,谢谢。


[Web开发]一个关于ASP运行时间计算的代码  [Web开发]ASP:检测含有中文字符串的实际长度
[Web开发]asp 中英文字符长度检测判断函数  [Access]sql随机抽取记录
[Web开发]安全维护 IIS asp 站点的高级技巧  [Web开发]ASP字符串截取函数
[Web开发][asp]关键词只替换一次的写法  [Web开发]Asp无组件生成缩略图方法详解
[Web开发]asp编程中优化数据库方法详解  [Web开发]三种方法教你asp如何去除html标记
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    An error occurred on the server when processing the URL. Please contact the system administrator.

    If you are the system administrator please click here to find out more about this error.

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao 信息产业部ICP备案号:鄂ICP备11006601号

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台