PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Postgresql - Làm cách nào để trích xuất lần xuất hiện đầu tiên của một chuỗi con trong một chuỗi bằng cách sử dụng mẫu biểu thức chính quy?

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres:Tổng hợp các tài khoản thành một danh tính duy nhất theo địa chỉ email chung

  2. Làm cách nào để bảo vệ khỏi việc đưa vào SQL khi mệnh đề WHERE được tạo động từ biểu mẫu tìm kiếm?

  3. Hibernate khởi động rất chậm

  4. Quản lý một Bản cam kết PostgreSQL

  5. Định dạng thời gian Rails Activerecord / Postgres