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

AWS Redshift环境下如何将多个NOT LIKE条件简化为单一行模式

Redshift下简化多NOT LIKE条件的实现方案

AWS Redshift支持POSIX正则匹配语法,可以直接把多个并列排除规则合并为同一个匹配条件,无需重复写NOT LIKE。

优化后的SQL写法

SELECT  distinct action_url 
from event_public
WHERE action_url like '%int/about/%/offices%' 
  -- 单条规则实现多个关键词排除
  and action_url !~* 'russia|japan|brazil|china|singapore|nigeria|algeria'
  and event_action ='Pageview'

语法说明

  • !~*是Redshift原生支持的正则操作符,代表不区分大小写的负向匹配,如果需要严格区分大小写可以替换为!~
  • 正则规则中的|代表或逻辑,只要action_url包含任意一个分隔的关键词,就会被过滤,逻辑和原写法的多个NOT LIKE完全一致

可选维护性优化方案

如果后续排除的关键词会频繁变更,也可以用数组批量匹配的写法,新增规则时只需要修改数组元素即可:

SELECT  distinct action_url 
from event_public
WHERE action_url like '%int/about/%/offices%' 
  AND NOT EXISTS (
    SELECT 1 FROM UNNEST(ARRAY['russia','japan','brazil','china','singapore','nigeria','algeria']) AS banned(word)
    WHERE action_url ILIKE '%' || banned.word || '%'
  )
  and event_action ='Pageview'

内容的提问来源于stack exchange,提问作者Juan Sebastian Bejarano

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:45:04