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

PostgreSQL中如何查询匹配指定字符串的通配符记录?

PostgreSQL前缀通配符匹配查询

针对你的需求,直接用下面的SQL就能从public.items表中找出匹配给定字符串的通配符记录:

方法一:转换通配符配合LIKE匹配

SELECT *
FROM public.items
WHERE 'stackoverflow.com' LIKE REPLACE(wildcard, '*', '%');

原理很简单:PostgreSQL里LIKE用%表示任意长度的任意字符,把wildcard里的*替换成%,就能用标准的前缀匹配规则,匹配所有以wildcard去掉*后的内容开头的字符串。

方法二:提取前缀直接对比

如果想更严谨,先过滤出符合xxx*格式的记录,再对比前缀:

SELECT *
FROM public.items
WHERE wildcard LIKE '%*'
  AND LEFT('stackoverflow.com', LENGTH(wildcard) - 1) = LEFT(wildcard, LENGTH(wildcard) - 1);

这里先筛选出以*结尾的通配符记录,再分别截取给定字符串和通配符的前缀部分(去掉通配符的最后一个*),对比相等就说明匹配。

如果是在应用程序里使用,把硬编码的'stackoverflow.com'换成参数即可,示例如下:

SELECT *
FROM public.items
WHERE $1 LIKE REPLACE(wildcard, '*', '%');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:50:22