sql >> Database >  >> RDS >> MariaDB

Hoe SOUNDS LIKE werkt in MariaDB

In MariaDB kunt u SOUNDS LIKE . gebruiken in een zoekopdracht om woorden te matchen die hetzelfde klinken.

Syntaxis

De syntaxis gaat als volgt:

expr1 SOUNDS LIKE expr2

Het is hetzelfde als dit te doen:SOUNDEX(expr1) = SOUNDEX(expr2) .

Soundex is een fonetisch algoritme voor het indexeren van namen op geluid, zoals uitgesproken in het Engels. Als twee woorden hetzelfde klinken, moeten ze dezelfde Soundex-snaar hebben. Als twee woorden hetzelfde klinken, maar niet precies hetzelfde, kan hun Soundex-snaar er hetzelfde uitzien, maar niet precies hetzelfde.

Voorbeeld

Hier is een eenvoudig voorbeeld:

SELECT 'Two' SOUNDS LIKE 'Too';

Resultaat:

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

In dit geval klinken de twee woorden hetzelfde.

We kunnen de SOUNDEX() . gebruiken functie om de Soundex-string van elk woord terug te geven:

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

Resultaat:

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

De Soundex snaren zijn identiek. Dit is waarom SOUNDS LIKE 1 geretourneerd .

Geen overeenkomst

Hier is een voorbeeld van twee woorden die niet hetzelfde klinken:

SELECT 'Cat' SOUNDS LIKE 'Dog';

Resultaat:

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

In dit geval kregen we 0 , omdat de woorden niet hetzelfde klinken. Vermoedelijk zijn hun Soundex-snaren anders. Laten we eens kijken:

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

Resultaat:

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

Ja. Verschillende Soundex-snaren.

Databasevoorbeeld

Hier is een voorbeeld van het gebruik van SOUNDS LIKE in de WHERE clausule van een databasequery:

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

Resultaat:

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

Hier gebruikt het de SOUNDEX() functie om hetzelfde te doen:

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

Resultaat:

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

  1. MariaDB 5.5 upgraden naar MariaDB 10.1 op CentOS/RHEL 7 en Debian-systemen

  2. Hoe u alle beperkingen van CHECK en externe sleutels in een database in SQL Server uitschakelt (T-SQL-voorbeelden)

  3. De PostgreSQL-systeemcatalogus begrijpen en lezen

  4. Postgres-functie NULL-waarde voor rij die verwijst naar NEW