PostgreSQL
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Команда Postgresql COPY, даваща грешка за отказа на разрешения

  2. Създайте уникален индекс на неуникална колона

  3. Postgres - Функция за връщане на пресечната точка на 2 МАССИВА?

  4. Как да използвате много оператори LIKE и да използвате индекс

  5. Как да направите правилно upsert с помощта на sqlalchemy на postgresql?