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 |
+---------+------------------+-----------------+