MySQL - SOUNDS LIKE 運算子



MySQL 的 SOUNDS LIKE 運算子用於對發音相似但拼寫可能不同的字串執行模糊搜尋。模糊搜尋搜尋與某個術語非常接近的文字,而不是完全匹配的文字。

SOUNDS LIKE 運算子基於 Soundex 演算法,這是一種語音演算法,它根據單詞的發音將其轉換為程式碼。如果兩個字串的 Soundex 程式碼相同,則此運算子返回 1;如果不同,則返回 0。

語法

以下是 SOUNDS LIKE 運算子的語法:

expr1 SOUNDS LIKE expr2

示例

在下面的示例中,我們比較兩個相等的字串:

SELECT 'tutorialspoint' SOUNDS LIKE 'tutorialspoint';

以上程式碼的輸出如下:

`'tutorialspoint' SOUNDS LIKE 'tutorialspoint'`
1

示例

如果兩個引數的 Soundex 值不匹配,則此函式返回 0:

SELECT 'banana' SOUNDS LIKE 'apple';

以上程式碼的輸出如下:

`'banana' SOUNDS LIKE 'apple'`
0

示例

如果此函式的兩個引數都為空,則返回 1:

SELECT '' SOUNDS LIKE '';

輸出如下:

`'' SOUNDS LIKE ''`
1

示例

如果此函式的任何一個引數為 NULL,則返回 NULL:

SELECT NULL SOUNDS LIKE 'test';

以上程式碼的輸出如下:

`NULL SOUNDS LIKE 'test'`
NULL

示例

讓我們建立一個名為“STUDENTS_TABLE”的表,並使用 CREATE 和 INSERT 語句向其中插入記錄,如下所示:

CREATE TABLE STUDENTS_TABLE (
   name VARCHAR(15),
   marks INT,
   grade CHAR
);

現在,讓我們使用 INSERT 語句向其中插入記錄:

INSERT INTO STUDENTS_TABLE VALUES 
('Raju', 80, 'A'),
('Rahman', 60, 'B'),
('Robert', 45, 'C');

得到的 STUDENTS_TABLE 如下:

姓名 分數 等級
Raju 80 A
Rahman 60 B
Robert 45 C

以下查詢將“name”列的實體與字串“Raju”進行比較,並檢索結果:

SELECT name, marks, grade, name SOUNDS LIKE 'robert'
FROM STUDENTS_TABLE;

執行以上程式碼後,我們將得到以下輸出:

姓名 分數 等級 `name SOUNDS LIKE 'robert'`
Raju 80 A 0
Rahman 60 B 0
Robert 45 C 1
mysql-sounds-like-operator.htm
廣告
© . All rights reserved.