函数soundex()作用
soundex是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。soundex考虑了类似的发音字符和音节,使得对字符串进行发音比较而不是字母比较。虽然,soundex不是SQL概念,但是多数DBMS都提供对soundex的支持。
例子
这理解起来有些拗口,下面通过一个实际的例子讲一下soundex()函数的用法:
下面是一个名为customers的表:
通过下面的MySQL语句:
SELECT *
FROM customers;
查看customers表如下图。
从表数据中看到一个cust_contact为Y Sam的顾客,但是如果这是错误的输入,此联系名实际上应该是 Y San, 该怎么办呢?,显然按照正确的联系名搜索不会返回数据。现在soundex()函数就该大现身手了,使用soundex()函数进行搜索,它匹配所有发音类似于 Y San的联系名:
现在输入SQL语句:
SELECT * FROM customers WHERE soundex(cust_contact) = soundex('Y San');
执行结果显示:
总结
在这个例子中,WHERE子句使用soundex()函数把cust_contact列值和搜索字符串转换为它们的soundex值。因为Y Sam 和 Y San发音相似,所以它们的soundex值匹配,因此WHERE子句正确地过滤了所需的数据。更多内容见《Mysql必知必会》