2013-04-24 4 views
7

Ich brauche die folgende Abfrage ausführen:Wie in Postgres LIKE auf inet Feld verwenden

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

Das Problem ist, dass die inet Datentyp keine Platzhalter unterstützt nicht scheint (zumindest nicht in der Art, wie ich verwendet habe sie in der vorhergehenden Abfrage).

Was ich gerne wissen würde, ob es eine kluge Entscheidung wäre, das Feld in eine Zeichenkette umzuwandeln, bevor der LIKE Filter spezifiziert wird? (Auf der anderen Seite würde dies wahrscheinlich die gesamte Abfrage verlangsamen, selbst wenn der Ansatz selbst gültig wäre.)

Antwort

20

Verwenden Sie Subnetz-Operatoren für solche Abfragen. '88.99.0.0/16' sollte es tun:

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