转来的文章,主要是mysql我熟,其他我不知道。。。。
文章来自:http://www.zhixing123.cn/net/sql-random-read-records.html
以下是全文:
利用一条SQL语句从数据库Table表中随机获取N条记录,各数据库的SQL语句略有不同,如下:
1、MySql
Select * From TABLE Order By Rand() Limit N
以上代码效率不高,自己对1000条数据表随机取10条的测试结果为耗时0.125s,有网友推荐改为以下代码效率有大幅提高,耗时为 0.005s,不过结果是随机从某个位置开始取N条记录,而不是随机取N条记录,略有差异。详细说明见mysql使用rand随机查询记录效率测试。
SELECT * FROM `TABLE` a join (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `TABLE`)-(SELECT MIN(id) FROM `TABLE`))+(SELECT MIN(id) FROM `TABLE`)) AS id) AS b WHERE a.id >= b.id ORDER BY a.id LIMIT N;
2、SQL Server
Select TOP N * From TABLE Order By NewID()
NewID()函数将创建一个 uniqueidentifier 类型的唯一值。
3、Access
Select TOP N * From TABLE Order By Rnd(ID)
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
Select TOP N * From TABLE Order BY Rnd(Len(UserName))
4、Oracle
1)dbms_random包
1 select * from (select * from Table order by dbms_random.value) where rownum < N;
注:dbms_random包需要手工安装,位于$ORACLE_HOME/rdbms/admin/dbmsrand.sql
1 dbms_random.value(100,200)
可以产生100到200范围的随机数
2)按概率抽取:
select * from Table sample(百分比);
例:
select * from Table sample(10);
取表Table中记录条数的10%条记录
3)sys_guid
select * from (select * from Table orderby sys_guid()) where rownum<N;
5、postgreSQL
select * from Table order by random() limit N
最近大家都在航母style,所以我们家也来了一个。。
然后顺便是这个视频 .这个。。。非常 有意思,但一下子不知道怎么搞可以在线,因为是MOV的文件。
哈哈,已经更新到优酷啦:
密码是肖佑阳的拼音:xiaoyouyang
最后,三马又帮忙转成了GIF,但是是横屏的,于是我用iphoto rotate了一下。正了。哈哈
最近不得不吐槽一下phpstorm。说实话,从2.0~6.0花的时间真短啊。2年不到,6.0了,平均四个月,一个新版本。
5刚刚用的上手,今天突然推送了一下EAP 6.本着试试看的精神,试用了一下,果然感觉和以前不太一样。。。
UI有变化了。彩色了。好吧,这不提,毕竟不是每个人都喜欢的。。。
在Project中多了一个Create Gist,不知道这是干什么的了吧。Look:http://www.jetbrains.com/phpstorm/webhelp/create-gist-dialog.html
好吧,这还不是我心动的地方,我心动的是。。。
当我在写代码的时候。比如这段:
PHP代码
- namespace xxx\xxx;
- classe test{
- public function __construct(){
- $usr = new \User();
- }
- }
看到了?是的,当使用namespace以外的对象时,需要在对象前加"\",以便和当前的代码区分开。
可是EAP6的版本中,你照常写,但你会发现,class test上面突然间多了一行:
use User;
于是你的代码中就不要"new \User();",而是直接"new User()",就OK了。
刚发现这一点新变化,很喜欢。。。所以就先贴出来了
scope这个单词给人的遐想实在太多了。第一次熟悉它的时候是因为他在yii的AR中有个小小的位置,比如 默认的查询值 ,默认的更新值 等等,方便自己写代码,方便给其他人一些默认属性的设定。
前两天在和流年聊天时,他说,你应该是好久没有看过thinkphp了,thinkphp中也有类似功能了。然后给我一个网址:http://www.thinkphp.cn/info/176.html,这种命名范围是新加入的功能。看了一下,果然功能很类似,也挺不错。
都是实现了差不多类似的功能。其实在很久以前,我记得thinkphp就有default_update字段和default_insert字段的。还可以设默认值。现在查询也可以了。
thinkphp也算是天天在进度,用它写程序的人也越来越多了,最近相对较火的瀑布流程序:pinphp,就是基于thinkphp进行开发的,开发速度快,在国内拥有N多用户,但索取的人多,贡献的人少,这恐怕也是TP最近的现状了。
支持一下国内的框架。顺便,QuickPHP这个框架大家也可以先记一下。(http://quickphp.net/),是一哥们写的。断断续续写了N多年了。基本成型。
国内现在框架有N多了,好象是个写PHP的都有想框架的冲动,我老了,蛋定了,不写了。。。。
现在很多的文档都开始转向markdown了,其实在yii中很早就支持markdown的解析。用法也是相当的简单,有两种用法
1、在模版中
XML/HTML代码
- $this->beginWidget('CMarkdown', array('purifyOutput'=>true));
- echo $content;
- $this->endWidget();
2、在PHP代码中
PHP代码
- $md = new CMarkdown;
- echo $md->transform($str);
非常简单的使用。
写markdown文件的话,软件就多了,我是用Mou,一个非常小的软件,可以边写边预览,也能导成PDF。这个就方便了啦。。。
过两天网上找找markdown的一些CSS文件,以后博客什么的,就全部由markdown来处理,再也不占空间了。妈妈说,我再也不用担心学习了。哪里不懂就点哪里。