2013-04-24 23 views
7

tôi cần phải thực hiện các truy vấn sau đây:Làm thế nào để sử dụng LIKE trên sân inet trong Postgres

SELECT * FROM users WHERE ip LIKE '88.99.%'; 

Vấn đề là các inet datatype không dường như để hỗ trợ ký tự đại diện (ít nhất là không theo cách tôi đã sử dụng chúng trong truy vấn trước).

Điều tôi muốn biết là liệu di chuyển thông minh có chuyển đổi trường thành chuỗi trước khi chỉ định bộ lọc LIKE không? (Mặt khác, điều này có thể làm chậm toàn bộ truy vấn, ngay cả khi chính phương pháp tiếp cận hợp lệ.)

Trả lời

20

Sử dụng toán tử mạng con cho các truy vấn đó. '88.99.0.0/16' nên làm điều đó:

SELECT * FROM users WHERE ip << inet '88.99.0.0/16'; 
Các vấn đề liên quan