使用列作为 to_tsquery 的输入
use a column as an input for to_tsquery
我有一个 table T1
,只有一列有 2000 个不同的单词。还有一个tableT2
有一列一个词。我想找到 T2
中的记录,它们的单词是否与 T1
中的单词之一匹配。
所以想象 T1
看起来如下:
word
------
regents
sky
tree
trees
avenue
和T2
是这样的:
tags | id| usrid
--------+----+--------
shifs | 1| @1
trees | 2| @2
sky | 3| @3
regents | 4| @4
regent | 5| @5
我想得到如下结果:
tags | id| usrid
--------+----+--------
trees | 2| @2
sky | 3| @3
regents | 5| @5
我可以使用以下查询从 T2
中搜索标签列,但我想使用 T1
中的 word
列作为 tsquery
的输入。
SELECT *
FROM T2
WHERE to_tsvector(tags) @@ to_tsquery('regent');
这将是表之间的简单连接:
SELECT t2.*
FROM t1 JOIN t2
ON t2.tags = t1.word;
无需全文搜索!