mysql sql with as_WITH AS SQL语句的用法

‘WITH AS短语也叫做子查询因子(subquery factoring),主要作用是定义一个SQL片段,该片段会被SQL语句中的其它部分应用到。

主要有这几个作用:

1.使SQL语句的可读性更高一些。(感觉像编程中的本地变量概念,定义好之后,很多地方都可以使用)。

2.提高查询效率。特别是对于UNION ALL和子查询被多次引用的时候。如果UNION ALL的很多部分可能相同,如果每个相同的部分都去执行一遍的话,成本很高,而使用WITH AS短语的话,则相同的部分只会执行一遍。执行方式是如果只被调用一次的话,那么和子查询一样,但是一遍以上的话,则会把WITH AS的数据插入到一个临时表中,这样的话,效率就会大幅度的提高。(这点和本地变量的概念还是一样的,本地变量被赋值了之后,后面调用的都是值,而原来的子查询则像方法调用,每次都是调用一遍,这样性能自然会差一些。)

使用举例:

with samp as (

select aaa,bb,ccc from test where dd = ddd

)

select bb from samp

MySQL现在不支持。可以参考http://stackoverflow.com/questions/1382573/how-do-you-use-the-with-clause-in-mysql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值