MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak działa dźwięk w MariaDB

W MariaDB możesz użyć SOUNDS LIKE w zapytaniu, aby dopasować słowa, które brzmią podobnie.

Składnia

Składnia wygląda tak:

expr1 SOUNDS LIKE expr2

To to samo, co zrobienie tego:SOUNDEX(expr1) = SOUNDEX(expr2) .

Soundex to fonetyczny algorytm indeksowania nazw według dźwięku, wymawianego w języku angielskim. Jeśli dwa słowa brzmią tak samo, powinny mieć ten sam ciąg Soundex. Jeśli dwa słowa brzmią podobnie, ale nie dokładnie tak samo, ich ciąg Soundex może wyglądać podobnie, ale nie dokładnie tak samo.

Przykład

Oto podstawowy przykład:

SELECT 'Two' SOUNDS LIKE 'Too';

Wynik:

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

W tym przypadku te dwa słowa brzmią tak samo.

Możemy użyć SOUNDEX() funkcja zwracająca ciąg Soundex każdego słowa:

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

Wynik:

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

Struny Soundex są identyczne. Dlatego SOUNDS LIKE zwrócono 1 .

Brak dopasowania

Oto przykład dwóch słów, które nie brzmią tak samo:

SELECT 'Cat' SOUNDS LIKE 'Dog';

Wynik:

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

W tym przypadku otrzymaliśmy 0 , ponieważ słowa nie brzmią tak samo. Przypuszczalnie ich struny Soundex są inne. Dowiedzmy się:

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

Wynik:

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

Tak. Różne struny Soundex.

Przykład bazy danych

Oto przykład użycia SOUNDS LIKE w WHERE klauzula zapytania do bazy danych:

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

Wynik:

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

Tutaj używa SOUNDEX() funkcja, aby zrobić to samo:

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Poprawka:Odmowa dostępu dla użytkownika „root”@”localhost” w MariaDB

  2. MariaDB JSON_MERGE() Objaśnienie

  3. Poprawka:„Nieznana tabela „locales” w schemacie_informacyjnym” w MariaDB

  4. Zautomatyzowane testowanie procesu aktualizacji dla klastra PXC/MariaDB Galera

  5. MariaDB MaxScale Load Balancing w Dockerze:Wdrożenie:część pierwsza