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

PostgreSQL模式匹配问题:使用ILIKE匹配多路径无返回结果

问题原因及解决方法

核心原因

ILIKE是SQL的模糊匹配运算符,它仅支持两种通配符:

  • %:匹配任意长度的任意字符(包括空字符)
  • _:匹配单个任意字符

你写的/(samples|items)/delete%属于正则表达式语法,但ILIKE不会解析这类语法,它会把整个字符串当成字面量去匹配——也就是寻找endpoint字段完全以/(samples|items)/delete开头的记录,而你的数据里不存在这种格式的内容,因此返回空结果。

正确的实现方式

方式1:用OR连接多个ILIKE条件

这是兼容性最好的写法,逻辑直观:

select endpoint from endpoints
where endpoint ilike '/samples/delete%'
   or endpoint ilike '/items/delete%';

方式2:使用正则表达式匹配(以PostgreSQL为例)

如果你的数据库支持正则表达式(比如PostgreSQL的~*运算符,支持不区分大小写匹配),可以用正则语法实现:

select endpoint from endpoints
where endpoint ~* '^/(samples|items)/delete';

这里^表示匹配字符串开头,(samples|items)表示匹配samples或items任意一个,~*实现不区分大小写的正则匹配,效果和ILIKE一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 08:42:38