原SQL:
update bi_data.order_list_wx
set is_start='1',proc_time=now()
where 1=1
and is_end='0'
and 交易时间<'{{开始日期}}'
and 商户订单号 in
(
select 商户订单号
from
(
select 商户订单号
from bi_data.order_list_wx
where 1=1
and is_end='0'
and 交易时间>='{{开始日期}}' and 交易时间<'{{截止日期}}'
and 商品名称 like '四部曲APP%'
) tt
)
优化:利用多表更新关联优化代码:
update bi_data.order_list_wx a join
(
select 商户订单号
from bi_data.order_list_wx
where 1=1
and is_end='0'
and 交易时间>='{{开始日期}}' and 交易时间<'{{截止日期}}'
and 商品名称 like '四部曲APP%'
) b on a.商户订单号=b.商户订单号
set is_start='1',proc_time=now()
where a.is_end='0' and 交易时间<'{{开始日期}}'