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

PostgreSQL:无需unnest和string_to_array简化WHERE子句实现精确匹配

实现简洁的精确匹配SQL写法

好问题!要实现精确的大小写不敏感匹配(像你用!~*做包含匹配那样简洁),可以借助PostgreSQL的正则表达式锚点来限定整个字符串匹配,再结合取反操作,写法非常紧凑:

SELECT postdomain FROM post WHERE postdomain !~* '^youtube.com$|^twitter.com$';

为什么这样写能实现精确匹配?

  • ^ 代表字符串的开头,$ 代表字符串的结尾,将每个域名用这两个锚点包裹,就确保只有当postdomain的完整值等于youtube.com或twitter.com时才会被匹配,不会出现部分包含的情况(比如不会误匹配sub.youtube.com)。
  • !~* 是PostgreSQL里“不匹配正则表达式,且大小写不敏感”的操作符,刚好满足你想要的简洁风格。

如果需要大小写敏感的精确匹配,只需要把!~*换成!~即可:

SELECT postdomain FROM post WHERE postdomain !~ '^youtube.com$|^twitter.com$';

对比你原来用NOT IN结合string_to_array、unnest的写法,这种正则方式语法更简洁,不需要额外的数组处理函数,可读性也更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:17:18