MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách hoạt động của SOUNDS LIKE trong MariaDB

Trong MariaDB, bạn có thể sử dụng SOUNDS LIKE trong một truy vấn để đối sánh các từ nghe giống nhau.

Cú pháp

Cú pháp như sau:

expr1 SOUNDS LIKE expr2

Cũng giống như thực hiện điều này:SOUNDEX(expr1) = SOUNDEX(expr2) .

Soundex là một thuật toán phiên âm để lập chỉ mục tên theo âm thanh, như được phát âm trong tiếng Anh. Nếu hai từ phát ra âm thanh giống nhau, chúng phải có cùng chuỗi Soundex. Nếu hai từ nghe giống nhau nhưng không hoàn toàn giống nhau, thì chuỗi Soundex của chúng có thể trông giống nhau nhưng không hoàn toàn giống nhau.

Ví dụ

Đây là một ví dụ cơ bản:

SELECT 'Two' SOUNDS LIKE 'Too';

Kết quả:

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

Trong trường hợp này, hai từ nghe giống nhau.

Chúng ta có thể sử dụng SOUNDEX() hàm trả về chuỗi Soundex của mỗi từ:

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

Kết quả:

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

Các dây Soundex giống hệt nhau. Đây là lý do tại sao SOUNDS LIKE trả về 1 .

Không phù hợp

Dưới đây là một ví dụ về hai từ không giống nhau:

SELECT 'Cat' SOUNDS LIKE 'Dog';

Kết quả:

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

Trong trường hợp này, chúng tôi nhận được 0 , bởi vì các từ nghe không giống nhau. Có lẽ, dây Soundex của họ khác nhau. Hãy cùng tìm hiểu:

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

Kết quả:

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

Chuẩn rồi. Các chuỗi Soundex khác nhau.

Ví dụ về cơ sở dữ liệu

Dưới đây là một ví dụ về việc sử dụng SOUNDS LIKE trong WHERE mệnh đề của một truy vấn cơ sở dữ liệu:

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

Kết quả:

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

Ở đây nó đang sử dụng SOUNDEX() chức năng để làm điều tương tự:

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

Kết quả:

+---------+------------------+-----------------+
| 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. Cách chạy ứng dụng PHP 5 với MySQL 8.0 trên CentOS 7

  2. Sử dụng Plugin nhật ký kiểm tra Percona để bảo mật cơ sở dữ liệu

  3. Người dùng mới và quản lý LDAP trong ClusterControl 1.8.2

  4. Cân nhắc về mã hóa cho dữ liệu ở trạng thái nghỉ cho MariaDB

  5. MariaDB JSON_DETAILED () Giải thích