Mysql
 sql >> Database >  >> RDS >> Mysql

Esempi di MySQL SOUNDEX()

Una delle tante funzioni di stringa MySQL è SOUNDEX() funzione. Questa funzione restituisce una stringa Soundex da una determinata stringa. Se due parole suonano allo stesso modo, dovrebbero avere la stessa stringa Soundex. Se due parole suonano simili, ma non esattamente uguali, la loro stringa Soundex potrebbe sembrare simile ma non esattamente la stessa.

Questo articolo contiene una serie di esempi Soundex per dimostrare come il SOUNDEX() la funzione funziona in MySQL.

Sintassi

Per prima cosa, diamo un'occhiata alla sintassi:

SOUNDEX(str)

Dove str è la stringa a cui si richiede la stringa Soundex.

Esempio

Ecco un esempio di recupero della stringa Soundex da una stringa:

SELECT SOUNDEX('Sure');

Risultato:

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

Quindi, in questo caso, la parola Sure ha una stringa Soundex di S600 .

Esempio – Corrispondenza esatta

Ecco un esempio di dove due parole suonano allo stesso modo (o molto simili) e quindi condividono la stessa stringa Soundex:

SELECT 
    SOUNDEX('Sure') AS Sure, 
    SOUNDEX('Shore') AS Shore;

Risultato:

+------+-------+
| Sure | Shore |
+------+-------+
| S600 | S600  |
+------+-------+

Ecco alcuni esempi di corrispondenza più esatti:

SELECT 
    SOUNDEX('Dam') AS Dam,
    SOUNDEX('Damn') AS Damn,
    SOUNDEX('Too') AS Too,
    SOUNDEX('Two') AS Two;

Risultato:

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

Esempio:non corrispondenza

Ecco un esempio in cui due parole non suonano allo stesso modo e, quindi, hanno corde Soundex diverse:

SELECT 
    SOUNDEX('Water') AS Water, 
    SOUNDEX('Coffee') AS Coffee;

Risultato:

+-------+--------+
| Water | Coffee |
+-------+--------+
| W360  | C100   |
+-------+--------+

Come puoi vedere, la stringa Soundex è completamente diversa per queste due parole.

Esempio:ortografie diverse

Ecco un esempio di due parole che hanno un'ortografia diversa (a seconda del paese di provenienza):

SELECT 
  SOUNDEX('Color') AS 'Color',
  SOUNDEX('Colour') AS 'Colour';

Risultato:

+-------+--------+
| Color | Colour |
+-------+--------+
| C460  | C460   |
+-------+--------+

Quindi possiamo vedere che tali parole condivideranno la stessa stringa Soundex (purché siano pronunciate allo stesso modo).

Esempio:stesso suono, soundex diverso

Ci sono casi in cui le parole suonano allo stesso modo, ma hanno corde Soundex diverse. Il motivo più comune è che iniziano con una lettera diversa, una delle quali è una lettera muta. Potresti aver notato dagli esempi precedenti che la stringa Soundex inizia con la prima lettera della stringa.

Pertanto, se hai due parole che si pronunciano esattamente allo stesso modo, ma iniziano con una lettera diversa, avranno una stringa Soundex diversa.

Ecco alcuni esempi:

SELECT
    SOUNDEX('Hole') AS 'Hole',
    SOUNDEX('Whole') AS 'Whole',
    SOUNDEX('Our') AS Our,
    SOUNDEX('Hour') AS Hour;

Risultato:

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

Le coppie in questo esempio hanno stringhe Soundex diverse solo perché la loro prima lettera è diversa.

Esempio:Soundex in una query di database

Ecco un esempio di utilizzo di SOUNDEX() in una query di database. In questo caso, stiamo cercando tutti i record che suonano come "Ay See Dee Ci":

SELECT ArtistName 
FROM Artists
WHERE SOUNDEX(ArtistName) = SOUNDEX('Ay See Dee Ci');

Risultato:

+------------+
| ArtistName |
+------------+
| AC/DC      |
+------------+

Quindi AC/DC apparentemente ha lo stesso codice Soundex di Ay See Dee Ci (almeno quando si utilizza MySQL) Per sicurezza, ecco i codici Soundex per entrambe le stringhe:

SELECT 
  SOUNDEX('AC/DC') AS 'AC/DC',
  SOUNDEX('Ay See Dee Ci') AS 'Ay See Dee Ci';

Risultato:

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

Un'alternativa:SUONA COME

Potrebbe essere stata creata una query alternativa utilizzando SOUNDS LIKE invece di SOUNDEX() funzione. In questo modo:

SELECT ArtistName FROM Artists
WHERE ArtistName SOUNDS LIKE 'Ay See Dee Ci';

Risultato:

+------------+
| ArtistName |
+------------+
| AC/DC      |
+------------+