Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exemplos de MySQL SOUNDEX()


Uma das muitas funções de string do MySQL é a SOUNDEX() função. Esta função retorna uma string Soundex de uma determinada string. Se duas palavras soam iguais, elas devem ter a mesma string Soundex. Se duas palavras soarem semelhantes, mas não exatamente iguais, sua string Soundex pode parecer semelhante, mas não exatamente a mesma.

Este artigo contém vários exemplos do Soundex para demonstrar como o SOUNDEX() função funciona no MySQL.


Sintaxe


Primeiro, vamos ver a sintaxe:
SOUNDEX(str)

Onde str é a string para a qual você precisa da string Soundex.

Exemplo


Aqui está um exemplo de recuperação da string Soundex de uma string:
SELECT SOUNDEX('Sure');

Resultado:
+-----------------+
| SOUNDEX('Sure') |
+-----------------+
| S600            |
+-----------------+

Nesse caso, a palavra Sure tem uma string Soundex de S600 .

Exemplo – Correspondência Exata


Aqui está um exemplo de onde duas palavras soam iguais (ou muito semelhantes) e, portanto, compartilham a mesma string Soundex:
SELECT 
    SOUNDEX('Sure') AS Sure, 
    SOUNDEX('Shore') AS Shore;

Resultado:
+------+-------+
| Sure | Shore |
+------+-------+
| S600 | S600  |
+------+-------+

Aqui estão alguns exemplos de correspondência mais exata:
SELECT 
    SOUNDEX('Dam') AS Dam,
    SOUNDEX('Damn') AS Damn,
    SOUNDEX('Too') AS Too,
    SOUNDEX('Two') AS Two;

Resultado:
+------+------+------+------+
| Dam  | Damn | Too  | Two  |
+------+------+------+------+
| D500 | D500 | T000 | T000 |
+------+------+------+------+

Exemplo - Não corresponde


Aqui está um exemplo de onde duas palavras não soam iguais e, portanto, elas têm diferentes strings Soundex:
SELECT 
    SOUNDEX('Water') AS Water, 
    SOUNDEX('Coffee') AS Coffee;

Resultado:
+-------+--------+
| Water | Coffee |
+-------+--------+
| W360  | C100   |
+-------+--------+

Como você pode ver, a string Soundex é completamente diferente para essas duas palavras.

Exemplo – Ortografias diferentes


Aqui está um exemplo de duas palavras que têm grafias diferentes (dependendo do país de onde você é):
SELECT 
  SOUNDEX('Color') AS 'Color',
  SOUNDEX('Colour') AS 'Colour';

Resultado:
+-------+--------+
| Color | Colour |
+-------+--------+
| C460  | C460   |
+-------+--------+

Assim, podemos ver que essas palavras compartilharão a mesma string Soundex (desde que sejam pronunciadas da mesma maneira).

Exemplo – Mesmo som, Soundex diferente


Há casos em que as palavras soam iguais, mas têm cordas Soundex diferentes. A razão mais comum para isso é que eles começam com uma letra diferente, uma das quais é uma letra silenciosa. Você deve ter notado nos exemplos anteriores que a string Soundex começa com a primeira letra da string.

Portanto, se você tiver duas palavras que são pronunciadas exatamente da mesma forma, mas começam com uma letra diferente, elas terão uma string Soundex diferente.

aqui estão alguns exemplos:
SELECT
    SOUNDEX('Hole') AS 'Hole',
    SOUNDEX('Whole') AS 'Whole',
    SOUNDEX('Our') AS Our,
    SOUNDEX('Hour') AS Hour;

Resultado:
+------+-------+------+------+
| Hole | Whole | Our  | Hour |
+------+-------+------+------+
| H400 | W400  | O600 | H600 |
+------+-------+------+------+

Os pares neste exemplo têm strings Soundex diferentes apenas porque sua primeira letra é diferente.

Exemplo – Soundex em uma consulta de banco de dados


Aqui está um exemplo de uso de SOUNDEX() em uma consulta de banco de dados. Neste caso, estamos procurando por qualquer registro que soe como “Ay See Dee Ci”:
SELECT ArtistName 
FROM Artists
WHERE SOUNDEX(ArtistName) = SOUNDEX('Ay See Dee Ci');

Resultado:
+------------+
| ArtistName |
+------------+
| AC/DC      |
+------------+

Então AC/DC aparentemente tem o mesmo código Soundex que Ay See Dee Ci (pelo menos ao usar o MySQL) Só para ter certeza, aqui estão os códigos Soundex para ambas as strings:
SELECT 
  SOUNDEX('AC/DC') AS 'AC/DC',
  SOUNDEX('Ay See Dee Ci') AS 'Ay See Dee Ci';

Resultado:
+-------+---------------+
| AC/DC | Ay See Dee Ci |
+-------+---------------+
| A232  | A232          |
+-------+---------------+

Uma alternativa:PARECE


Uma consulta alternativa poderia ter sido construída usando SOUNDS LIKE em vez do SOUNDEX() função. Assim:
SELECT ArtistName FROM Artists
WHERE ArtistName SOUNDS LIKE 'Ay See Dee Ci';

Resultado:
+------------+
| ArtistName |
+------------+
| AC/DC      |
+------------+