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;
同じくらい良いマッチが複数あり得るので、これは二段階でやるしかないと思います。助言がありますか?