资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

程序架构探讨—001多段select语句的方案-创新互联

有时候,我们需要做多条件查询,多个条件为“或”的关系,分类查询等,一般会用到多段select语句,然后用union或者union all进行连接,进而查出需要的结果。

成都创新互联公司自成立以来,一直致力于为企业提供从网站策划、网站设计、成都网站设计、网站建设、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。

例如,

select

a.id as id,

a.name as name,

a.age as age

from scama.table_name2 a

where 1=1

union all

select

b.sn as id,

b.name as name,

b.age as age

from scama.table_name2 b

where 1=2

union all

select

c.serial_id as id,

c.name as name,

c.age as age

from scama.table_name3 c

where 1=3

;

此时程序实现时,存在不少的麻烦。例如,大段的相似的sql容易出错,后续的维护的不方便,以及如果程序拼接了sql后传递给数据库执行带来的性能问题等等。

那么如何进行更好的改进实现呢?

方式有很多,博主根据自己的经验提供如下两种方案可供参考。

1、将各段查询语句,分开调用

将每段select单独写方法调用,最后再将每个调用的结果汇总为结果。

例如,

datatable dt1= 调用第一段的sql的结果;

datatable dt2= 调用第二段的sql的结果;

...

依次查询完成,最后合并dt1,dt2....

这种方案针对前台程序将sql拼接为字符串,通过程序本身框架内实现的与数据库的连接方式,执行sql语句。

2、后台完成,将查询的结果写入临时表或者中间表,直接查询该表的结果

即,使用存储过程或者函数,将需要查询的多条sql语句插入至一张临时表(物理表也可),然后返回结果。

这种方式,因为是在数据库中完成,那么有些需要查询的字段,就可以单独写语句查询出来再赋值给当前结果。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:程序架构探讨—001多段select语句的方案-创新互联
分享网址:http://www.cdkjz.cn/article/iiddj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220