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                    |

今ではすべてのユーザーが多くの記事を持っています。

私が今欲しいのは、記事のタイトルをtsv列にtsvectorとして保存することです。このようなもの:

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 に答える