给定一个 IP 地址 192.168.0.1,以及一个包含存储子网 IP 地址的 next_hop_subnet 列的表,您是否发现以下 PostGRESQL 逻辑、准确性或性能方面有任何问题:
minDif := select min(abs(inet '192.168.0.1' - next_hop_subnet::inet))
from routing_table
where next_hop_subnet::inet >>= inet '192.168.0.1';
select *
from routing_table
where next_hop_subnet::inet >>= inet '192.168.0.1'
AND abs(inet '192.168.0.1' - next_hop_subnet::inet) = minDif;
因为,可以有多个同样好的匹配,我认为除了分两步之外别无他法。有什么建议么?