BigQuery批量删除多组客户ID时DELETE语句返回删除0行问题求助
SQL批量删除无匹配行问题解决方案
问题根因
你原SQL使用AND逻辑符拼接ID匹配条件,要求同一行数据的ExternalCustomerId同时等于两个不同的数值,该逻辑不可能成立,因此没有命中任何行,返回删除0行的结果。
解决方法
优先使用IN运算符实现多ID批量匹配,语法简洁,后续新增待删除ID时直接在括号内追加即可,示例如下:
DELETE FROM `MY-PROJECT.google_ads1.p_Customer_2670156874` WHERE ExternalCustomerId IN ( 2370433843, 7411145258 -- 更多待删除ID直接按逗号分隔追加即可 )
你也可以用OR运算符替换原语句的AND实现相同效果:
DELETE FROM `MY-PROJECT.google_ads1.p_Customer_2670156874` WHERE ExternalCustomerId = 2370433843 OR ExternalCustomerId = 7411145258
操作建议
批量删除前建议先执行SELECT语句验证匹配行数,避免误删:
SELECT COUNT(*) FROM `MY-PROJECT.google_ads1.p_Customer_2670156874` WHERE ExternalCustomerId IN (2370433843,7411145258)
确认返回行数符合预期后再执行DELETE操作即可。
内容的提问来源于stack exchange,提问作者smoothiegirl97
相关产品推荐
相关产品推荐

