Обсуждение: Datatype Inet and Searching

Поиск
Список
Период
Сортировка

Datatype Inet and Searching

От
"Devin Atencio"
Дата:

 

Dear Users,

 

I am very new to using the inet data type and I have a database with a list of CIDRs in it

And I was hoping to be able to do some kind of select statement that would pull the record

That the IP given is located in for example. If in my database I have a record like:

 

Id          cidr                   name

1          10.0.0.0/30        user1

2          10.0.0.4/30        user2

3          10.0.0.8/30        user3

 

I was hoping to be able to do something like:

Select * from mytable where cidr <<=’10.0.0.5’

 

And the database would return only record 2 since it knows that 10.0.0.5 is contained only within record 2.

I can’t seem to figure out the correct syntax to make this type of query happen. Any help would greatly

Be appreciated.

 

Devin Atencio

Re: Datatype Inet and Searching

От
Gaetano Mendola
Дата:
Devin Atencio wrote:
>  
> 
> Dear Users,
> 
>  
> 
> I am very new to using the inet data type and I have a database with a 
> list of CIDRs in it
> 
> And I was hoping to be able to do some kind of select statement that 
> would pull the record
> 
> That the IP given is located in for example. If in my database I have a 
> record like:
> 
>  
> 
> Id          cidr                   name
> 
> 1          10.0.0.0/30        user1
> 
> 2          10.0.0.4/30        user2
> 
> 3          10.0.0.8/30        user3
> 
>  
> 
> I was hoping to be able to do something like:
> 
> Select * from mytable where cidr <<=’10.0.0.5’


select * from mytable where cider >>= '10.0.0.5'

The operation a >>= b mean:

a contain or is equal b.



Regards
Gaetano Mendola




Re: Datatype Inet and Searching

От
Guy Fraser
Дата:

Devin Atencio wrote:

> Dear Users,
>
> I am very new to using the inet data type and I have a database with a 
> list of CIDRs in it
>
> And I was hoping to be able to do some kind of select statement that 
> would pull the record
>
> That the IP given is located in for example. If in my database I have 
> a record like:
>
> Id cidr name
>
> 1 10.0.0.0/30 user1
>
> 2 10.0.0.4/30 user2
>
> 3 10.0.0.8/30 user3
>
> I was hoping to be able to do something like:
>
> Select * from mytable where cidr <<=’10.0.0.5’
>
> And the database would return only record 2 since it knows that 
> 10.0.0.5 is contained only within record 2.
>
> I can’t seem to figure out the correct syntax to make this type of 
> query happen. Any help would greatly
>
> Be appreciated.
>
> Devin Atencio
>
Select * from mytable where cidr >>= ’10.0.0.5’

or

Select * from mytable where ’10.0.0.5' <<= cidr

-- 
Guy Fraser
Network Administrator
The Internet Centre
780-450-6787 , 1-888-450-6787

There is a fine line between genius and lunacy, fear not, walk the
line with pride. Not all things will end up as you wanted, but you
will certainly discover things the meek and timid will miss out on.