SOUNDEX
功能描述
SOUNDEX函数可以计算字符串的语音编码。
在进行数据分析和处理时,有时候需要对字符串进行语音编码,即将字符串转换成与其发音类似的编码。
通过比较两个字符串的语音编码,可以评估它们之间的发音相似度。因此,对于在拼音文字中有时会念但不能拼出正确字的情形,又或者特别是在做搜索引擎时面对用户传入的陌生英文字符串的场景,可用本函数做类似模糊比对的效果。例如:
SELECT * FROM table_name WHERE SOUNDEX(column_name) = SOUNDEX('abc');
注意事项
该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。
返回值类型
text
示例
1、创建测试表。
CREATE TABLE t_soundex(id INTEGER, sound VARCHAR);
INSERT INTO t_soundex VALUES ( 1 , 'marry' );
2、使用 Merry 来模糊匹配 Marry。
SELECT * FROM t_soundex WHERE SOUNDEX(sound) = SOUNDEX('merry');
返回结果为:
id | sound
----+-------
1 | marry
(1 row)
3、删除测试表
DROP TABLE t_soundex;
两个单词的首字母与浊音音节相同,进而 soundex函数的返回结果相同,因此可以使用等号(=)匹配。