You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery中LIKE ANY与NOT LIKE ANY算子行为疑问求助

BigQuery中NOT LIKE ANY的行为解析

你遇到的问题核心是运算符优先级导致的逻辑误解:

  • NOT的优先级高于ANY,所以'a' NOT LIKE ANY (...)的实际逻辑是:对集合中的每个模式,先计算'a' NOT LIKE 模式,再判断这些结果中是否至少有一个为true。
  • 你的例子里,集合中的前三个模式'b'、'%b%'、'b'都满足'a' NOT LIKE 模式(结果为true),所以整个表达式返回true——这完全符合ANY“至少一个匹配”的定义,只是这里的“匹配”是指NOT LIKE的结果为true。

如果你想要表达“不存在任何能匹配X的模式”,需要显式用括号改变运算符优先级,写成:

SELECT NOT ('a' LIKE ANY ('b','%b%', 'b', 'a'));

这个表达式会先计算'a' LIKE ANY (...)(结果为true),再取反得到false,和你的预期一致。

总结三个表达式的逻辑差异:

  • X LIKE ANY (patterns):只要有一个pattern匹配X,返回true
  • X NOT LIKE ANY (patterns):只要有一个pattern不匹配X,返回true
  • NOT (X LIKE ANY (patterns)):所有pattern都不匹配X时,返回true

内容的提问来源于stack exchange,提问作者holzben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 19:15:56