CodeHeads a écrit :
> On Wed, 2006-02-22 at 16:49 -0600, Ariel Sánchez Mora wrote:
>> So far i've been able to store ip addresses as strings like you would
>> type them in DOS, for ex, '192.168.0.1'. This serves me great since my
>> application uses IP addresses as strings in all cases. I've done
>> queries with the IP column , for example, select office_name from
>> table_1 where ip='10.100.1.1'; and have never had any problems.
>> However, if you plan on sorting based on this column, strings with
>> periods do not behave correctly, and the answers to my previous
>> question on this list do not apply; it makes a good aproximation,
>> though.
>>
>> Hope this helps, but I must admit I am not sure if this answers your
>> question. An example in the mysql console would be great for clearing
>> up your objetive.
>>
>> Regards,
>>
>> Ariel 
> 
> OK, I think I did not explain things right the first time. :(
> 
> I have a table like so:
> CREATE TABLE `portal_forums_users` (
>   `user_id` bigint(255) NOT NULL auto_increment,
>   `ip` varchar(200) default NULL,
>   `signup_date` varchar(30) default NULL,
>   `city` varchar(200) default NULL,
>   `state` varchar(100) default NULL,
>   `email_address` varchar(200) default NULL,
>   `username` varchar(100) default NULL,
>   `password` varchar(100) default NULL,
>   `yim` text,
>   `aol` text,
>   `web_url` text,
>   `post_count` varchar(255) default NULL,
>   `info` text,
>   `sig` text,
>   `avatar` text,
>   `css_id` int(11) default NULL,
>   `mod_f` varchar(20) default NULL,
>   `admin` varchar(20) default NULL,
>   PRIMARY KEY  (`user_id`),
>   FULLTEXT KEY `full_index`
> (`city`,`state`,`username`,`email_address`,`ip`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
> 
> Notice the FULLTEXT; I have the ip listed to be indexed. Using a PHP
> script I have it will not grab the IP that I am searching for, even
> though it *is* in the database. The ip's are entered into the database
> as 192.168.1.10.  When I search for a username it works great.
> 
> Is it because of the "." (periods) in the search string??
> 
> Hopefully I explained that right this time!! :) LOL
> 

Ok I got 2 informations for you:

1) IPv4 address are actually 32 bit integer, easily store in 32 bits
fast search etc etc etc (You can google for more on this storage
format). Normally you could find a way to goes from the string
192.168.1.1 to the equivalent int. Look for ip2long() function in PHP
for example!

2) FULLTEXT indexes are a special type of index in MySQL, their use on
numeric field doesn't make sense. To be used on ip string they would
require some tweaking as they normally don't remember word under 3
letters if i'm correct. And last but not least they aren't use with a
"like"  but with a "match"

You could however use an typical index here, or even better an unique
index to ensure the validation!

Hope it helps you in you development!

See for all information about fulltext index in the manual
http://dev.mysql.com/doc/refman/4.1/en/fulltext-search.html


-- 
Mathieu Bruneau
aka ROunofF

===
GPG keys available @ http://rounoff.darktech.org

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to