特别说明哦:我的日志都是自己写的,完全是自己写的,完全没有转载的,可别以为我是转载的哦
这里的文章除特别说明的以外,全部使用《知识共享 署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议》进行许可,不可以盗用哦
其实很简单,通过Sin函数和DateDiff函数就可以实现了
SELECT TOP 10 * FROM yt_fanfic_article ORDER BY SIN(id+DATEDIFF(HH,'2000-1-1',GetDate()))
DateDiff(HH,'2000-1-1',GetDate())返回一个值,这个值等于2000年1月1日到现在经历的小时数,显然,这个值每小时会+1
接着加上一个id,这是记录的编号,以增大随机性
最后计算Sin就可以了,得出来的结果是-1到+1之间的一个小数,每一条记录都会有自己的值,而这个值可以根据小时变化,这样就产生随机序列了
该SQL语句用于YT同人栏目首页的随机文章列表
本SQL语句仅在达梦数据库上测试通过,其他数据库没测试过。不过据猜测不能兼容其他数据库,因为似乎任何两个数据库系统的DateDiff函数的参数都不同…… 总之原理就是这样,针对不同的数据库写不同的就行了,当然通用性就……
请给这篇日志评个分吧!
开一个新的分类,樱町专栏
“易用是我们的特色之一”

2008年5月3日 19:21 | by 





