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如下-
name | marks | grade |
---|---|---|
Raju | 80 | A |
Rahman | 60 | B |
Robert | 45 | C |
以下查询将"name"列的实体与字符串"Raju"进行比较并检索结果 -
SELECT name, marks, grade, name SOUNDS LIKE 'robert' FROM STUDENTS_TABLE;
执行上述代码后,我们得到以下输出 -
name | marks | grade | name SOUNDS LIKE 'robert' |
---|---|---|---|
Raju | 80 | A | 0 |
Rahman | 60 | B | 0 |
Robert | 45 | C | 1 |
mysql-sounds-like-operator.html