MySQL 中的 SOUNDEX()函数
MySQL 中的SOUNDEX ()函数用于返回字符串的语音表示。音标代表字符串的发音方式。 SOUNDEX函数有助于比较拼写不同但在英语中听起来相似的单词。
句法 :
SOUNDEX(str)
范围 :
SOUNDEX()函数接受一个如上所述和下面描述的参数。
- str :我们想知道其语音表示的字符串。
回报:
它返回给定字符串的语音表示。
笔记 :
- 当前实现的此函数旨在很好地处理仅使用英语的字符串。其他语言的字符串可能无法产生可靠的结果。
- 此函数不能保证为使用多字节字符集(包括 utf-8)的字符串提供一致的结果。
示例-1:
使用 SOUNDEX 函数查找 'geeksforgeeks' 的 SOUNDEX字符串。
SELECT SOUNDEX('geeksforgeeks') AS SoundexString;
输出 :
SoundexString |
---|
G162 |
示例 2 :
使用 SOUNDEX 函数查找 'Hello' 的 SOUNDEX字符串。
SELECT SOUNDEX('Hello') AS SoundexString;
输出 :
SoundexString |
---|
H400 |
示例 3 :
SOUNDEX函数还可用于查找列数据的 SOUNDEX字符串。为了演示创建一个名为 Student 的表。
CREATE TABLE Student
(
Student_id INT AUTO_INCREMENT,
Student_name VARCHAR(100) NOT NULL,
Student_Class VARCHAR(20) NOT NULL,
PRIMARY KEY(Student_id )
);
现在向 Student 表插入一些数据:
INSERT INTO Student
(Student_name, Student_Class )
VALUES
('Ananya Majumdar', 'IX'),
('Anushka Samanta', 'X' ),
('Aniket Sharma', 'XI' ),
('Anik Das', 'X' ),
('Riya Jain', 'IX' ),
('Tapan Samanta', 'X' ),
('Deepak Sharma', 'X' ),
('Ankana Jana', 'XII'),
('Shreya Ghosh', 'X') ;
因此,学生表如下。
mysql> select * from Student;
+------------+-----------------+---------------+
| Student_id | Student_name | Student_Class |
+------------+-----------------+---------------+
| 1 | Ananya Majumdar | IX |
| 2 | Anushka Samanta | X |
| 3 | Aniket Sharma | XI |
| 4 | Anik Das | X |
| 5 | Riya Jain | IX |
| 6 | Tapan Samanta | X |
| 7 | Deepak Sharma | X |
| 8 | Ankana Jana | XII |
| 9 | Shreya Ghosh | X |
+------------+-----------------+---------------+
9 rows in set (0.00 sec)
现在,我们将查找 Student_name 列的 SOUNDEX字符串。
SELECT
Student_id, Student_name,
SOUNDEX( Student_name) AS SoundexSname,
Student_Class FROM Student ;
输出 :
+------------+-----------------+--------------+---------------+
| Student_id | Student_name | SoundexSname | Student_Class |
+------------+-----------------+--------------+---------------+
| 1 | Ananya Majumdar | A52536 | IX |
| 2 | Anushka Samanta | A5253 | X |
| 3 | Aniket Sharma | A523265 | XI |
| 4 | Anik Das | A5232 | X |
| 5 | Riya Jain | R250 | IX |
| 6 | Tapan Samanta | T15253 | X |
| 7 | Deepak Sharma | D1265 | X |
| 8 | Ankana Jana | A52525 | XII |
| 9 | Shreya Ghosh | S620 | X |
+------------+-----------------+--------------+---------------+