Working with SOUNDEX in MySQL

06.20.2022

Intro

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 Syntax

The basic syntax of a SOUNDEX is as follows:

SELECT SOUNDEX(string_name);
  • string is the string to convert to a soundex code.

Getting Setup

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.

A Simple Example

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.