仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 891|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL教程之怎样在MySQL查询了局会合失掉纪录行号

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-16 20:13:33 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
即使对于MySQL的商业化的企业版来说,也没有高昂的许可证成本,当你将其与像甲骨文和微软之类的大型专有商业数据库比较的话。假如必要在查询语句前往的列中包括一列暗示该笔记录在全部了局会合的行号,ISOSQL:2003尺度提出的办法是供应ROW_NUMBER()/RANK()函数。Oracle中可使用尺度办法(8i版本以上),也能够利用非尺度的ROWNUM;MSSQLServer则在2005版本中供应了ROW_NUMBER()函数;但在MySQL中仿佛还没有如许的体系自带功效。固然LIMIT能够很便利的对前往的了局集数目和地位举行过滤,但过滤出来的纪录的行号却没举措被SELECT到。听说MySQL是早就想增添这个功效了,但我是还没找到。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">办理办法是经由过程预界说用户变量来完成:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">set@mycnt=0;<Pstyle="TEXT-INDENT:2em">select(@mycnt:=@mycnt+1)asROWNUM,othercolfromtblnameorderbyothercol;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">如许查询出来的了局会合ROWNUM就保留了行编号信息。这个行编号信息的某种用处在于当你必要依据必要对数据依照某种划定规矩排序并掏出排序以后的某一行数据,而且但愿晓得这行数据在之前排序中的地位时就用得着了。好比:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">set@mycnt=0;<Pstyle="TEXT-INDENT:2em">select*from(<Pstyle="TEXT-INDENT:2em">select(@mycnt:=@mycnt+1)asROWNUM,othercol<Pstyle="TEXT-INDENT:2em">fromtblnameorderbyothercol<Pstyle="TEXT-INDENT:2em">)asAwhereothercol=OneKeyID;<Pstyle="TEXT-INDENT:2em">固然你也能够经由过程创立一时表的办法把查询了局写到某个具有auto_increment字段的一时表中再做查询,但思索光临时表在MySQLmaster/slave形式下大概发生的成绩,用如许一时用户界说变量的体例来盘算查询了局集每行对应的行号仍是更加简便--除非你乐意在php或其他言语剧本中对前往的全部了局集再作处置。
业界普遍的声音认为:“MySQL是一个可靠的数据库系统,MySQL学习教程无论是在嵌入式或大型群集系统的部署中,还是在基于Web的应用程序领域。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-25 10:35:16 | 只看该作者
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
冷月葬花魂 该用户已被删除
6#
发表于 2015-3-18 03:10:49 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
爱飞 该用户已被删除
5#
发表于 2015-3-11 08:45:42 | 只看该作者
比如日志传送、比如集群。。。
乐观 该用户已被删除
地板
发表于 2015-3-3 01:10:05 | 只看该作者
习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。
再现理想 该用户已被删除
板凳
发表于 2015-2-12 07:09:00 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
飘灵儿 该用户已被删除
沙发
发表于 2015-2-5 14:33:44 | 只看该作者
原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
小魔女 该用户已被删除
楼主
发表于 2015-1-27 18:09:20 | 只看该作者
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-11 04:13

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表