sql >> データベース >  >> RDS >> PostgreSQL

Postgresql-正規表現パターンを使用して、文字列内のサブストリングの最初の出現を抽出するにはどうすればよいですか?

    regexp_matches()を使用できます 代わりに:

    update data1
      set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1];
    

    追加のフラグが渡されないため、regexp_matches() 最初の一致のみを返しますが、配列を返すため、結果から最初の(そして唯一の)要素を選択する必要があります(これが[1]です。 一部)

    更新を、そもそも正規表現に一致する行のみに制限することをお勧めします。

    update data1
      set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1]
    where full_text ~ 'I [0-9]{1,3}'
    


    1. MySQLの低速クエリログロギング高速クエリ

    2. MySQLの更新/ステートメントの挿入を高速化

    3. Oracle JSON_OBJECT&JSON_ARRAYAGGを使用して複数のリストから個別の値を集計する方法

    4. MYSQLからのデータの最初の行がありません