MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie SOUNDS LIKE in MariaDB funktioniert

In MariaDB können Sie SOUNDS LIKE verwenden in einer Abfrage, um ähnlich klingende Wörter abzugleichen.

Syntax

Die Syntax lautet wie folgt:

expr1 SOUNDS LIKE expr2

Es ist dasselbe wie hier:SOUNDEX(expr1) = SOUNDEX(expr2) .

Soundex ist ein phonetischer Algorithmus zum Indizieren von Namen nach Ton, wie sie im Englischen ausgesprochen werden. Wenn zwei Wörter gleich klingen, sollten sie den gleichen Soundex-String haben. Wenn zwei Wörter ähnlich, aber nicht genau gleich klingen, sieht ihre Soundex-Zeichenfolge möglicherweise ähnlich, aber nicht genau gleich aus.

Beispiel

Hier ist ein einfaches Beispiel:

SELECT 'Two' SOUNDS LIKE 'Too';

Ergebnis:

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

In diesem Fall klingen die beiden Wörter gleich.

Wir können den SOUNDEX() verwenden Funktion, um den Soundex-String jedes Wortes zurückzugeben:

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

Ergebnis:

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

Die Soundex-Saiten sind identisch. Deshalb SOUNDS LIKE gab 1 zurück .

Keine Übereinstimmung

Hier ist ein Beispiel für zwei Wörter, die nicht gleich klingen:

SELECT 'Cat' SOUNDS LIKE 'Dog';

Ergebnis:

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

In diesem Fall haben wir 0 erhalten , weil die Wörter nicht gleich klingen. Vermutlich sind ihre Soundex-Saiten anders. Finden wir es heraus:

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

Ergebnis:

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

Ja. Verschiedene Soundex-Saiten.

Datenbankbeispiel

Hier ist ein Beispiel für die Verwendung von SOUNDS LIKE im WHERE Klausel einer Datenbankabfrage:

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

Ergebnis:

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

Hier wird der SOUNDEX() verwendet Funktion, um dasselbe zu tun:

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

Ergebnis:

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