小编典典

IPv4地址的PostgreSQL字段数据类型

sql

PostgreSQL中IPv4地址的正确数据类型是什么?

我听说过inet,但从未使用过。

我需要执行SELECT类似的查询,SELECT ... WHERE ip = '99.88.99.88'并且它应该支持人类可读格式的输出(人类可读的意思是“ 99.88.99.88”)。

具有SELECT通过该子网的IP地址的功能将是很好的。

感谢您提前提出任何建议!


阅读 182

收藏
2021-04-22

共1个答案

小编典典

内置cidrinet类型将满足您的要求,并提供合适的运算符:

regress=> SELECT '192.168.1.19'::inet << '192.168.1.0/24'::cidr;
 ?column? 
----------
 t
(1 row)

参见PostgreSQL文档的网络数据类型,运算符和函数以及对网络数据类型

cidrinet类型提供了有限的索引支持;特别是,至少在地址为常数的情况下,“范围内的地址”类型的查询被转换为范围查询。看到这个(比较旧的)线程

另请参见克里斯的观点ip4r

2021-04-22