MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как SOUNDS LIKE работи в MariaDB

В MariaDB можете да използвате SOUNDS LIKE в заявка за съвпадение на думи, които звучат еднакво.

Синтаксис

Синтаксисът е така:

expr1 SOUNDS LIKE expr2

Това е същото като да направите това:SOUNDEX(expr1) = SOUNDEX(expr2) .

Soundex е фонетичен алгоритъм за индексиране на имена по звук, както се произнася на английски. Ако две думи звучат еднакво, те трябва да имат същия низ на Soundex. Ако две думи звучат сходно, но не съвсем еднакво, техният низ на Soundex може да изглежда подобно, но не съвсем същото.

Пример

Ето един основен пример:

SELECT 'Two' SOUNDS LIKE 'Too';

Резултат:

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

В този случай двете думи звучат еднакво.

Можем да използваме SOUNDEX() функция за връщане на Soundex низа на всяка дума:

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

Резултат:

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

Струните на Soundex са идентични. Ето защо SOUNDS LIKE върна 1 .

Няма съвпадение

Ето пример за две думи, които не звучат еднакво:

SELECT 'Cat' SOUNDS LIKE 'Dog';

Резултат:

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

В този случай имаме 0 , защото думите не звучат еднакво. Предполага се, че техните Soundex струни са различни. Нека разберем:

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

Резултат:

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

да. Различни струни на Soundex.

Пример за база данни

Ето пример за използване на SOUNDS LIKE в WHERE клауза на заявка за база данни:

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

Резултат:

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

Тук той използва SOUNDEX() функция, за да направи същото:

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

Резултат:

+---------+------------------+-----------------+
| 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. Как работи LENGTH() в MariaDB

  2. Как да надстроите от MariaDB 10.4 до MariaDB 10.5

  3. Как работи UNHEX() в MariaDB

  4. Как да инсталирате и защитите MariaDB на CentOS 8

  5. Създаване на клъстер с гео-разпределена база данни с помощта на MySQL репликация