w3resource

MySQL SOUNDEX() function

SOUNDEX() function

MySQL SOUNDEX() function returns soundex string of a string.

Soundex is a phonetic algorithm for indexing names after English pronunciation of sound. You can use SUBSTRING() on the result to get a standard soundex string. All nonalphabetic characters in str are ignored. All international alphabetic characters outside the A-Z range are treated as vowels.

Syntax:

SOUNDEX(str)

Argument:

Name Description
str A string whose SOUNDEX string is to be retrieved.

The SOUNDEX() function has following limitations :

  • This function, as currently implemented, is intended to work well with strings that are in the English language only. Strings in other languages may not produce reliable results.
  • This function is not guaranteed to provide consistent results with strings that use multi-byte character sets, including utf-8.

Syntax Diagram:

MySQL SOUNDEX() Function - Syntax Diagram

MySQL Version: 8.0

Example: MySQL SOUNDEX() function

The following statement returns the SONDEX string of the argument string w3resource. The return value is W6262.

Code:

SELECT SOUNDEX('w3resource'); 

Output:

mysql> SELECT SOUNDEX('w3resource');
+-----------------------+
| SOUNDEX('w3resource') |
+-----------------------+
| W6262                 | 
+-----------------------+
1 row in set (0.00 sec)

Using SOUNDEX() in a query

The following MySQL statement returns all countries whose names have the same soundex code as 'USA'. It will retrieve countries like 'USA', 'UK', etc.

Code:

SELECT country
FROM author
WHERE SOUNDEX(country) = SOUNDEX('USA');

Sample table: author

Output:

country|
-------+
UK     |
UK     |
USA    |
UK     |
USA    |
USA    |
UK     |
USA    |

Soundex comparison with multiple strings

The following MySQL statement retrieve countries names from the "author" table that sound similar to 'USA' or 'Canada'.

Code:

SELECT country
FROM author
WHERE SOUNDEX(country) = SOUNDEX('USA')
or 
SOUNDEX(country) = SOUNDEX('Canada');

Sample table: author

Output:

country|
-------+
UK     |
Canada |
UK     |
USA    |
UK     |
USA    |
USA    |
Canada |
UK     |
USA    |

Using SOUNDEX() with LIKE

The following MySQL statement find all countries whose names have the same soundex code as 'US' as their starting portion.

Code:

SELECT country
FROM author
WHERE SOUNDEX(country) like CONCAT(SOUNDEX('US'),'%')

Sample table: author

Output:

country|
-------+
UK     |
UK     |
USA    |
UK     |
USA    |
USA    |
UK     |
USA    |

All String Functions (Slides presentation)

Previous: RTRIM
Next: SOUNDS_LIKE



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/mysql/string-functions/mysql-soundex-function.php