1. 程式人生 > 其它 >技巧:利用時間欄位獲取子查詢更新行數

技巧:利用時間欄位獲取子查詢更新行數

背景:

*.假設Mysql根據某個條件更新了10行,當再次執行此SQL時,即使仍有10行滿足更新條件,但是更新行數卻返回0.

*.在做複雜ETL(反覆除錯)時,當更新行數返回0時,不知道是沒有更新到某行,還是已經更新過了,所以需要無論如何執行,都要返回的行數,以確認所執行SQL是正確的.

解決:

*.使用更新時間欄位來完成

實際案例:

# 同時要加上本週期以前的相同訂單號的所有訂單(is_end=1除外)
@Run.ExecuteSql("標記wx參與計算的舊訂單",@"
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
)
")

本文來自部落格園,作者:xiaoyongdata(微訊號:xiaoyongdata),轉載請註明原文連結:https://www.cnblogs.com/xiaoyongdata/p/15635271.html