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}'