Bạn có thể sử dụng regexp_matches()
thay vào đó:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1];
Vì không có cờ bổ sung nào được chuyển, regexp_matches()
chỉ trả về kết quả phù hợp đầu tiên - nhưng nó trả về một mảng, vì vậy bạn cần chọn phần tử đầu tiên (và duy nhất) từ kết quả (đó là [1]
phần)
Có lẽ nên giới hạn bản cập nhật ở những hàng chỉ khớp với regex ở vị trí đầu tiên:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1]
where full_text ~ 'I [0-9]{1,3}'