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

PostgreSQL如何查询包含指定单词的标题列数据?

PostgreSQL筛选包含特定单词的标题解决方案

方法1:LIKE操作符搭配通配符

LIKE默认是精确匹配,要匹配包含目标单词的内容,需要用%作为通配符(匹配任意长度的任意字符)。如果要避免匹配到Your、Young这类包含You但并非独立单词的情况,需要结合位置判断:

SELECT *
FROM table
WHERE title LIKE '% You %' -- 匹配位于文本中间的You
   OR title LIKE 'You %'   -- 匹配位于文本开头的You
   OR title LIKE '% You';  -- 匹配位于文本结尾的You

如果需要忽略大小写,用ILIKE替代LIKE即可:

SELECT *
FROM table
WHERE title ILIKE '% you %'
   OR title ILIKE 'you %'
   OR title ILIKE '% you';

方法2:POSIX正则表达式(~操作符)

PostgreSQL支持正则表达式匹配,用~操作符可以更简洁地匹配独立单词:

SELECT *
FROM table
WHERE title ~ '\mYou\M';
  • \m表示单词的开头边界
  • \M表示单词的结尾边界

忽略大小写的话,使用~*操作符:

SELECT *
FROM table
WHERE title ~* '\myou\M';

方法3:全文搜索(适合大数据量场景)

如果你的表数据量较大,全文搜索的查询效率会远高于前两种方法。首先需要创建全文索引:

CREATE INDEX idx_title_tsv ON table USING GIN (to_tsvector('english', title));

之后就可以用全文查询语法快速筛选:

SELECT *
FROM table
WHERE to_tsvector('english', title) @@ to_tsquery('english', 'You');

这种方法会自动处理单词的大小写、形态变体(比如匹配You、you等),且索引能大幅缩短查询耗时。

注意:将上述代码中的table替换为你实际使用的表名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 19:34:51