MySQL provides the SOUNDEX function to convert a string into a four-character code based on how the string sounds when spoken. In this article, we will learn how to use SOUNDEX in MySQL.
The basic syntax of a SOUNDEX is as follows:
SELECT SOUNDEX(string_name);
We will be using docker in this article, but feel free to install your database locally instead. Once you have docker installed, create a new file called docker-compose.yml
and add the following.
version: '3'
services:
db:
image: mysql:latest
container_name: db
environment:
MYSQL_ROOT_PASSWORD: root_pass
MYSQL_DATABASE: app_db
MYSQL_USER: db_user
MYSQL_PASSWORD: db_user_pass
ports:
- "6033:3306"
volumes:
- dbdata:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: pma
links:
- db
environment:
PMA_HOST: db
PMA_PORT: 3306
PMA_ARBITRARY: 1
restart: always
ports:
- 8081:80
volumes:
dbdata:
Next, run docker-compose up
.
Now, navigate to http://localhost:8081/
to access phpMyAdmin. Then log in with the username root
and pass root_pass
.
Click the SQL tab and you are ready to go.
The soundex is a straight forward function. Let's run a few example to see how different code compare.
SELECT soundex('hello') as res;
res |
---|
H400 |
We can compare this score to a similar sounding word, "mellow"
SELECT soundex('hello') as res, soundex('mellow') as res2;
res | res2 |
---|---|
H400 | M400 |
As expected, we see the starting code is different as the two words sound different when sounding out the word.