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
广告