Thanks you for your prompt reply! Luck of the Irish, I guess. This is another reason to test your systems on your client's platform, not your own. My client's target the Latin American population, so let's try this again with a more representative data sample.
Note that I had an error in my sql syntax in addition to my error in basic understanding of soundex. INSERT INTO sound (name) VALUES ('Gonzales'); select id from sound where soundex(name) = soundex('Gonzalez'); returns 1 records select id from sound where soundex(name) = soundex('Gonsallez'); returns 1 records select id from sound where soundex(name) = soundex('Gimsallez'); returns 1 records And, of course, select id from sound where soundex(name) = soundex('Calighim'); returns 1 records select id from sound where soundex(name) = soundex('Callahan'); returns 0 records Also, soundex has a known problem with first characters: select id from sound where soundex(name) = soundex('Kallaghan'); returns 0 records > I hate to be the one to break this to you, but > soundex('Callaghan') != soundex('Callahan') > > It's just the sad truth: the algorithm thinks they are pronounced > differently, so it doesn't consider them to match. > > soundex() is certainly better than nothing, but in many cases not much > better. I'm not sure whether even MetaPhone (a more robust soundex variant) > would get this case right, and all the mis-spelling systems I've ever > implemented have been suplemented with a set of heuristics (like searching > for all single-letter drops, adds, and transpositions) and often a > mis-spelling database in an attempt to find suggested alternatives. > > -rob > > On 7/6/02 at 11:39 pm, Dave Callaghan <[EMAIL PROTECTED]> wrote: > > > I want to use SOUNDEX for name queries, but I don't > > seem to be doing it correctly. > > > > As a test, I made a small table and popluated it > > with my name. My goal is to be able to find my name > > 'Callaghan', with its most common misspelling > > 'Callahan'. > > > > I've read the MySQL doc, so I know how to actually > > invoke soundex at the mysql prompt. I read an > > article that said soundex queries move more quickly > > if you add a column for the soundex. > > > > Thus: > > > > CREATE TABLE sound ( > > id tinyint(3) NOT NULL auto_increment, > > name varchar(100) default NULL, > > sound varchar(100) default NULL, > > PRIMARY KEY (id) > > ) TYPE=MyISAM; > > > > select soundex('Callaghan'); > > result = C425 > > > > INSERT INTO sound VALUES (1, 'Callaghan', 'C425'); > > > > Simple enough. Now, I expected all three of the > > following queries to return a value. > > > > select id from sound where sound = > > soundex('Callaghan'); > > returns 1 records > > > > select id from sound where sound = > > soundex('Callahan'); > > returns 0 records > > > > select id from sound where name = > > soundex('Callaghan'); > > returns 0 records > > > > I'm missing something obvious here, but I've read > > the doc and I'm not sure what's wrong. > > > > -- > > Get your free email from www.linuxmail.org > > > > > > Powered by Outblaze > > > > --------------------------------------------------------------------- > > Before posting, please check: > > http://www.mysql.com/manual.php (the manual) > > http://lists.mysql.com/ (the list archive) > > > > To request this thread, e-mail <[EMAIL PROTECTED]> > > To unsubscribe, e-mail <[EMAIL PROTECTED]> > > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > > > > > > -- Get your free email from www.linuxmail.org Powered by Outblaze --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php