MySQL: Conheça a função SOUNDEX()

A função SOUNDEX() retorna valores (strings) com a fonética similares. Lembrando que esta função pode não funcionar 100% para o nosso idioma.

Tabela: clientes

mysql> SELECT * FROM clientes;
+----+----------------+--------------------+
| id | nome           | e-mail             |
+----+----------------+--------------------+
|  1 | Marcos         | email@teste.com.br |
|  2 | Marco          | email@teste.com.br |
|  3 | Markus         | email@teste.com.br |
|  4 | Mark           | email@teste.com.br |
|  5 | Marc           | email@teste.com.br |
|  6 | Roberto Marcos | email@teste.com.br |
|  7 | Pedro          | email@teste.com.br |
|  8 | Maicon         | email@teste.com.br |
+----+----------------+--------------------+
 
// buscando nomes com a pronúncia parecida
mysql> SELECT * FROM clientes WHERE SOUNDEX(nome) = SOUNDEX('Marcos');
+----+--------+--------------------+
| id | nome   | e-mail             |
+----+--------+--------------------+
|  1 | Marcos | email@teste.com.br |
|  2 | Marco  | email@teste.com.br |
|  3 | Markus | email@teste.com.br |
|  4 | Mark   | email@teste.com.br |
|  5 | Marc   | email@teste.com.br |
+----+--------+--------------------+

A função SOUNDEX(), também, pode gerar outras strings de forma arbitrária.

mysql> SELECT soundex('linhadecomando.com') as resultado;
+-----------+
| resultado |
+-----------+
| L5325325  |
+-----------+

2 comentários em “MySQL: Conheça a função SOUNDEX()

  • 19 de março de 2020 em 16:22
    Permalink

    Uso o MySQL 5.1 com Tabelas em MyISAM e quando coloco o SOUNDEX o retorno é o seguinte
    mysql> SELECT NomeFantasia FROM clientefornecedor WHERE SOUNDEX(NomeFantasia) = SOUNDEX(‘LUIZ’);
    +————–+
    | NomeFantasia |
    +————–+
    | LOGUS |
    +————–+
    1 row in set (0.02 sec)

    Não sei pq não funciona aqui, outras pesquisas tbm retornaram resultados que não satisfazem a condição….. alguem sabe pq???

    Resposta

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *