手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜Qcloud , 注册 | 登陆
浏览模式: 标准 | 列表2012年11月的文章

随机读取N条记录(MySQL、SQL Server、Access、

转来的文章,主要是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及视频一枚

 最近大家都在航母style,所以我们家也来了一个。。

大小: 3.09 M
尺寸: 282 x 376
浏览: 776 次
点击打开新窗口浏览全图
 
然后顺便是这个视频 .这个。。。非常 有意思,但一下子不知道怎么搞可以在线,因为是MOV的文件。
 
img_0612.mov,文件不大,有兴趣 的朋友可以点开看。绝对是有笑点
 
哈哈,已经更新到优酷啦:
 

密码是肖佑阳的拼音:xiaoyouyang
 
最后,三马又帮忙转成了GIF,但是是横屏的,于是我用iphoto rotate了一下。正了。哈哈
大小: 710.56 K
尺寸: 141 x 250
浏览: 777 次
点击打开新窗口浏览全图

Tags: 肖佑阳

phpstorm 6 EAP

 最近不得不吐槽一下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代码
  1. namespace xxx\xxx;  
  2. classe test{  
  3.     public function __construct(){  
  4.         $usr = new \User();  
  5.     }  
  6. }  
看到了?是的,当使用namespace以外的对象时,需要在对象前加"\",以便和当前的代码区分开。
 
可是EAP6的版本中,你照常写,但你会发现,class test上面突然间多了一行:
use User;
于是你的代码中就不要"new \User();",而是直接"new User()",就OK了。
 
刚发现这一点新变化,很喜欢。。。所以就先贴出来了
 
 

scope

 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的都有想框架的冲动,我老了,蛋定了,不写了。。。。

Tags: yii, thinkphp

Yii 中 markdown 的用法

现在很多的文档都开始转向markdown了,其实在yii中很早就支持markdown的解析。用法也是相当的简单,有两种用法
1、在模版中

XML/HTML代码
  1. $this->beginWidget('CMarkdown', array('purifyOutput'=>true));  
  2. echo $content;  
  3. $this->endWidget();  

2、在PHP代码中

PHP代码
  1. $md = new CMarkdown;  
  2.  echo $md->transform($str);  

非常简单的使用。
写markdown文件的话,软件就多了,我是用Mou,一个非常小的软件,可以边写边预览,也能导成PDF。这个就方便了啦。。。
过两天网上找找markdown的一些CSS文件,以后博客什么的,就全部由markdown来处理,再也不占空间了。妈妈说,我再也不用担心学习了。哪里不懂就点哪里。

Tags: yii, markdown

Records:2212345