UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【PostgreSQL】文字列を置換する

末尾に言語コードがついたID 12345:en12345:jaなどがA_TABLEテーブルに格納されている

このテーブルから、IDが末尾:enのものを検索して、言語コード部分enを別の言語コードjaに置換してB_TABLEに格納したい

つまり、B_TABLEテーブルには英語をコピーした各言語のIDを格納したい

INSERT INTO B_TABLE
  SELECT id /* ← ここを置換したい */
  FROM A_TABLE
  WHERE id LINK '%:en'
ON CONFLICT (id) DO NOTHING;

そこで、REPLACE関数を使う

9.4. 文字列関数と演算子

REPLACE関数は文字列内の指定された一部の文字列を別の文字列に置き換える

replace(string text, from text, to text)