sql >> Database teknologi >  >> RDS >> MariaDB

Hvordan LYDER SOM virker i MariaDB

I MariaDB kan du bruge SOUNDS LIKE i en forespørgsel for at matche ord, der lyder ens.

Syntaks

Syntaksen ser sådan ud:

expr1 SOUNDS LIKE expr2

Det er det samme som at gøre dette:SOUNDEX(expr1) = SOUNDEX(expr2) .

Soundex er en fonetisk algoritme til at indeksere navne efter lyd, som udtales på engelsk. Hvis to ord lyder ens, skal de have den samme Soundex-streng. Hvis to ord lyder ens, men ikke helt ens, kan deres Soundex-streng ligne, men ikke helt ens.

Eksempel

Her er et grundlæggende eksempel:

SELECT 'Two' SOUNDS LIKE 'Too';

Resultat:

+-------------------------+
| 'Two' SOUNDS LIKE 'Too' |
+-------------------------+
|                       1 |
+-------------------------+

I dette tilfælde lyder de to ord ens.

Vi kan bruge SOUNDEX() funktion for at returnere Soundex-strengen for hvert ord:

SELECT 
    SOUNDEX('Two'),
    SOUNDEX('Too');

Resultat:

+----------------+----------------+
| SOUNDEX('Two') | SOUNDEX('Too') |
+----------------+----------------+
| T000           | T000           |
+----------------+----------------+

Soundex-strengene er identiske. Det er derfor SOUNDS LIKE returnerede 1 .

Ingen match

Her er et eksempel på to ord, der ikke lyder ens:

SELECT 'Cat' SOUNDS LIKE 'Dog';

Resultat:

+-------------------------+
| 'Cat' SOUNDS LIKE 'Dog' |
+-------------------------+
|                       0 |
+-------------------------+

I dette tilfælde fik vi 0 , fordi ordene ikke lyder ens. Formentlig er deres Soundex-strenge anderledes. Lad os finde ud af:

SELECT 
    SOUNDEX('Cat'),
    SOUNDEX('Dog');

Resultat:

+----------------+----------------+
| SOUNDEX('Cat') | SOUNDEX('Dog') |
+----------------+----------------+
| C300           | D200           |
+----------------+----------------+

Jep. Forskellige Soundex-strenge.

Databaseeksempel

Her er et eksempel på brug af SOUNDS LIKE i WHERE klausul i en databaseforespørgsel:

SELECT 
    PetName, 
    SOUNDEX(PetName),
    SOUNDEX('Wagg')
FROM Pets
WHERE PetName SOUNDS LIKE 'Wagg';

Resultat:

+---------+------------------+-----------------+
| PetName | SOUNDEX(PetName) | SOUNDEX('Wagg') |
+---------+------------------+-----------------+
| Wag     | W200             | W200            |
+---------+------------------+-----------------+

Her bruger den SOUNDEX() funktion til at gøre det samme:

SELECT 
    PetName, 
    SOUNDEX(PetName),
    SOUNDEX('Wagg')
FROM Pets
WHERE SOUNDEX(PetName) = SOUNDEX('Wagg');

Resultat:

+---------+------------------+-----------------+
| PetName | SOUNDEX(PetName) | SOUNDEX('Wagg') |
+---------+------------------+-----------------+
| Wag     | W200             | W200            |
+---------+------------------+-----------------+

  1. Er primære nøgler og indekser i Hive-forespørgselssprog mulig eller ej?

  2. Forespørgsel tilskud til en tabel i postgres

  3. Databasedesign til at skabe tabeller i farten

  4. Fejlfinding af CPU-ydeevne på VMware