PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgresql — Jak wyodrębnić pierwsze wystąpienie podciągu w ciągu za pomocą wzorca wyrażenia regularnego?

Możesz użyć regexp_matches() zamiast tego:

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

Ponieważ żadna dodatkowa flaga nie jest przekazywana, regexp_matches() zwraca tylko pierwsze dopasowanie - ale zwraca tablicę, więc musisz wybrać pierwszy (i jedyny) element z wyniku (jest to [1] część)

Prawdopodobnie dobrym pomysłem jest ograniczenie aktualizacji tylko do wierszy, które pasują do wyrażenia regularnego:

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. Pobierz najnowsze dziecko na rodzica z dużej tabeli — zapytanie jest zbyt wolne

  2. Klasa modelu JPA dla pola TIMESTAMP BEZ STREFY CZASOWEJ DEFAULT CURRENT_TIMESTAMP w Postgresie?

  3. Nie możesz wstawić nowego wiersza do tabeli bazy danych postgres?

  4. Jak wstawić dane binarne do bazy danych za pomocą Laravel?

  5. DLA KAŻDEGO OŚWIADCZENIA przykład wyzwalacza