0

我一直在阅读 PSQL 文档,也困扰着 Google——虽然我不确定要寻找什么——但看起来不可能从选择中创建一个 tsvector。

让我解释一下。我有表用户,我在其中添加了一个名为 tsv 的 tsvector 列。

      Column       |            Type             |                     Modifiers
-------------------+-----------------------------+---------------------------------------------------
 id                | integer                     | not null default nextval('jobs_id_seq'::regclass)
 username          | character varying(255)      | not null
 tsv               | tsvector                    |

现在每个用户都有很多文章

我现在想要的是将文章标题作为 tsvector 存储在 tsv 列中。像这样的东西:

UPDATE users SET tsv = to_tsvector(
  SELECT string_agg(title) 
  FROM users INNER JOIN books 
  ON user.id = articles.user_id 
  GROUP BY user.id
)

所以很明显,即使不尝试从 SELECT 中创建一个 tsvector,查询也不会工作。它基本上有2个“问题”

非常感谢您提前。

4

1 回答 1

1
UPDATE users
SET tsv = to_tsvector(s.tsv)
from
    (  
        SELECT id, string_agg(title) tsv
        FROM
            users
            INNER JOIN
            articles ON user.id = articles.user_id 
        GROUP BY user.id
    ) s
where users.id = s.id
于 2013-02-28T12:37:30.907 回答