Archive for

февруари, 2011

PostgreSQL и мрежовите оператори

Работил съм по няколко проекта, при които изискване беше използването на PostgreSQL и наистина започнах да го харесвам, макар отначалото да ми се стори зле. Доста функционалности, които са много полезни в различни случаи. Една от тях е мрежовия оператор <<=

is contained within or equals – inet ’192.168.1/24′ <<= inet ’192.168.1/24′

По този начин може да се провери дали дадено IP принадлежи към конкретна мрежа. Простичко, нали! Ноза жалост на мен ми трябваше да взема адреси, които не принадлежат към конкретна мрежа :) . Е, няма го обратния оператор – поне аз не намерих такъв. Така че това, което направих е:


SELECT COUNT(*) FROM ips WHERE  CASE WHEN ip <<= inet '192.168.1/24' THEN false ELSE true END