Perl 数据查询的技术
2014-02-13 00:00
10 查看
今天测试查询数据的时候发现一个很奇异的问题,对着这个问题做了个研究。
先看代码,具体如下:
在这种情况下读出的数据会有重复读取的问题,例如目标数据要求是每个表读取一次,但是这个方法看起来是读取一次,实际上是读取了两次。具体结果如下所示:
第一次的结果将会包含到第二次中,为了解决这个问题,我仔细的修改了下代码,发现,只需要每次将容器清空,即可。在此MARK一下。方便以后查询。
先看代码,具体如下:
#!/usr/bin/perl use TDmodule; # create object $test=TDmodule->new(); # connect db return config $config=$test->connect_db("3d_database","localhost","root","mojige123"); # select for db return database $old=$test->select_db($config,"select * from old_papar"); $user=$test->select_db($config,"select * from user_papar"); sub result{ local($sql)=shift; local($task)=shift; # print execute result while($list=$sql->fetchrow_hashref()){ push(@target,$list->{$task}); } return @target; } @old_papar=result($old,'id'); @user_papar=result($user,'number'); foreach my $a (@old_papar){ print "$a\n"; } print "--------------\n"; foreach my $b (@user_papar){ print "$b\n"; }
在这种情况下读出的数据会有重复读取的问题,例如目标数据要求是每个表读取一次,但是这个方法看起来是读取一次,实际上是读取了两次。具体结果如下所示:
root@crunchbang:~# perl TDmodule.pl 1 2 3 4 5 6 7 8 9 10 11 -------------- 1 2 3 4 5 6 7 8 9 10 11 145 404 693 6 168 18 746 429 206 403 319
第一次的结果将会包含到第二次中,为了解决这个问题,我仔细的修改了下代码,发现,只需要每次将容器清空,即可。在此MARK一下。方便以后查询。
#!/usr/bin/perl use TDmodule; # create object $test=TDmodule->new(); # connect db return config $config=$test->connect_db("3d_database","localhost","root","mojige123"); # select for db return database $old=$test->select_db($config,"select * from old_papar"); $user=$test->select_db($config,"select * from user_papar"); sub result{ local($sql)=shift; local($task)=shift; # clean list array @target=(); # print execute result while($list=$sql->fetchrow_hashref()){ push(@target,$list->{$task}); } return @target; } @old_papar=result($old,'id'); @user_papar=result($user,'number'); foreach my $a (@old_papar){ print "$a\n"; } print "--------------\n"; foreach my $b (@user_papar){ print "$b\n"; }
相关文章推荐
- 万亿级日志与行为数据存储查询技术剖析
- jsp数据库查询分页技术
- 【SQL】练习并熟练掌握用T-SQL查询命令进行数据查询的技能【原创技术】
- DSG-SnapArchiving-Oracle历史数据归档管理和查询技术简述
- MySQL中针对大数据量常用技术:查询优化,数据转移
- 转载:12306:分布式内存数据技术为查询提速75倍
- Oracle数据仓库查询优化技术
- ASP.NET查询分页技术:实现Web数据分页浏览
- spring boot 整合redis对查询数据做缓存( 利用spring的AOP技术)
- 技术分享:如何用Solr搭建大数据查询平台
- oracle高级数据查询技术
- Perl中对查询得的数据排序
- 使用LINQ技术进行数据查询的顺序如下所示
- 作业4.2:ORACLE特殊数据查询技术
- 使用LINQ技术进行数据查询的顺序如下所示
- 分布式内存数据技术为查询提速
- MySQL中针对大数据量常用技术:查询优化,数据转移
- CASE函数 sql server——分组查询(方法和思想) ref和out 一般处理程序结合反射技术统一执行客户端请求 遍历查询结果集,update数据 HBuilder设置APP状态栏
- SQL查询相关技术-7.SQL操作(形成2个数据表)
- ASP.NET查询分页技术:实现Web数据分页浏览