22 de febrero de 2010

PostgreSQL:Busquedas en campos tipo inet


Si queremos hacer una búsqueda de direcciones IP en un campo PostgreSQL del tipo INET, no podemos hacerlo directamente con LIKE ...

psql=>SELECT * FROM tabla WHERE ip LIKE '192.168.1.%';
ERROR: la sintaxis de entrada no es válida para tipo inet: «192.168.1.%»

...ya que inet no es texto y no lo admite.

SOLUCCIÓN: Utilizar la función HOST(inet) que transforma el campo tipo INET en texto:

psql=>SELECT * FROM tabla WHERE HOST(ip) LIKE '192.168.1.%';

Ref.:
How do I perform a wildcard "like" select on type inet with Postgresql 7.4?
9.10. Network Address Type Functions

No hay comentarios:

Publicar un comentario