2013-04-24 13 views
7

muszę wykonać następujące zapytanie:Jak używać jak na polu inet w PostgreSQL

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

Problemem jest to, że inet typ danych nie wydaje się wspierać symboli wieloznacznych (przynajmniej nie w sposób, w jaki zostały wykorzystane ich w poprzednim zapytaniu).

Co chciałbym wiedzieć, czy to byłby sprytny ruch, aby przekonwertować pole na łańcuch przed określeniem filtru LIKE? (Z drugiej strony prawdopodobnie spowolniłoby to całe zapytanie, nawet jeśli samo podejście było prawidłowe.)

Odpowiedz

20

Użyj operatorów podsieci do takich zapytań. '88.99.0.0/16' powinien to zrobić:

SELECT * FROM users WHERE ip << inet '88.99.0.0/16';