Search code examples
sql-serversoundex

Soundex and checking for invalid sound


Is it ok to check for SQL returning a Soundex of 0000 based on the assumption that it isn't a valid word, e.g. has digits, spaces, special characters or is there a better way to do this?


Solution

  • I don't think soundex is good for that, I think the SOUNDEX() function will omit the digits, spaces and symbol, for example:

    SELECT SOUNDEX("HELLO")
    SELECT SOUNDEX("_HEL123O_")
    

    Both give you the same result.

    H400
    

    Besides SOUNDEX() has some limitation in the way it works.

    You can take a look at the Levenshtein distance, it determines the number of operations you have to do to make one string exactly like another. You can find an implementation here.

    HTH