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

Làm cách nào để thực hiện truy vấn tìm kiếm trên giá trị cột chứa một chuỗi có các giá trị được phân tách bằng dấu phẩy?

Bạn có thể làm điều gì đó như thế này.

select name from zone_table where 
string_to_array(replace(tags,' ',''),',')@>
string_to_array(replace('down, 110.22.100.3',' ',''),',');

1) xóa khoảng trắng trong chuỗi hiện có để phân tách chuỗi_to_array thích hợp mà không có bất kỳ khoảng trắng nào ở phía trước bằng cách sử dụng thay thế

2) string_to_array chuyển đổi chuỗi của bạn thành mảng được phân tách bằng dấu phẩy.

3) @> contains không nhà điều hành

(HOẶC)

Nếu bạn muốn đối sánh toàn bộ

select name from zone_table where POSITION('down, 110.22.100.3' in tags)!=0

Đối với các kết hợp riêng biệt, bạn có thể thực hiện

select name from zone_table where POSITION('down' in tags)!=0 and 
POSITION('110.22.100.3' in tags)!=0

Tìm hiểu thêm về vị trí tại đây



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để viết lại câu lệnh SELECT ... CROSS JOIN LATERAL ... cho các phiên bản PostgreSQL cũ hơn?

  2. Mô tả tập hợp kết quả trong PostgreSQL?

  3. Nhận [archiver] phiên bản không được hỗ trợ (1.13) trong tiêu đề tệp khi chạy pg_restore

  4. Nâng cấp từ PostGIS 2.1:Lỗi:cố gắng xác định lại tham số postgis.backend

  5. Định dạng ngày tháng trong PostgreSQL