sql >> Databasteknik >  >> RDS >> MariaDB

Hur LÅT SOM fungerar i MariaDB

I MariaDB kan du använda SOUNDS LIKE i en fråga för att matcha ord som låter likadana.

Syntax

Syntaxen ser ut så här:

expr1 SOUNDS LIKE expr2

Det är samma sak som att göra så här:SOUNDEX(expr1) = SOUNDEX(expr2) .

Soundex är en fonetisk algoritm för att indexera namn efter ljud, som uttalas på engelska. Om två ord låter likadana bör de ha samma Soundex-sträng. Om två ord låter lika, men inte exakt likadana, kan deras Soundex-sträng se likadana ut men inte exakt likadana.

Exempel

Här är ett grundläggande exempel:

SELECT 'Two' SOUNDS LIKE 'Too';

Resultat:

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

I det här fallet låter de två orden likadana.

Vi kan använda SOUNDEX() funktion för att returnera Soundex-strängen för varje ord:

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

Resultat:

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

Soundex-strängarna är identiska. Det är därför SOUNDS LIKE returnerade 1 .

Ingen match

Här är ett exempel på två ord som inte låter likadant:

SELECT 'Cat' SOUNDS LIKE 'Dog';

Resultat:

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

I det här fallet fick vi 0 , eftersom orden inte låter likadana. Förmodligen är deras Soundex-strängar annorlunda. Låt oss ta reda på:

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

Resultat:

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

Japp. Olika Soundex-strängar.

Databasexempel

Här är ett exempel på hur du använder SOUNDS LIKE i WHERE klausul i en databasfråga:

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

Resultat:

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

Här använder den SOUNDEX() funktion för att göra samma sak:

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

Resultat:

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

  1. Ignorera datumintervallsparametern i where-satsen när parametern inte anges

  2. Förstå ACID-modellen för databashantering

  3. Oracle Sequence nextval hoppar nummer fram och tillbaka

  4. Hur man ändrar färg och teckensnitt i SQL Server Management Studio (SSMS) - SQL Server / TSQL självstudie del 12