MariaDB SOUNDEX() 函数从给定字符串返回 soundex 字符串。听起来几乎相同的两个字符串应该具有相同的 soundex 字符串。标准 soundex 字符串的长度为四个字符,但此函数返回任意长的字符串。可以在结果上使用 SUBSTRING() 函数来获取标准 soundex 字符串。
此函数将忽略 str 中的所有非字母字符。 A-Z 范围之外的所有国际字母字符均被视为元音。
使用 SOUNDEX() 函数时,应注意以下限制:
- 当前实现的此功能旨在仅适用于英语字符串。其他语言中的字符串可能无法产生可靠的结果。
- 此函数实现原始 Soundex 算法,而不是更流行的增强版本(也由 D. Knuth 描述)。不同之处在于,原始版本首先丢弃元音,然后重复,而增强版本首先丢弃重复,然后元音。
- 此函数不能保证为使用多字节字符集的字符串提供一致的结果,包括 UTF-8。
语法
SOUNDEX(str)
参数
str | 必填。 指定要检索其 soundex 字符串的字符串。 |
返回值
返回给定的 soundex 字符串
示例 1:
下面的示例展示了 SOUNDEX() 函数的用法。
SELECT SOUNDEX('Hello');
Result: 'H400'
SELECT SOUNDEX('Principal');
Result: 'P65214'
SELECT SOUNDEX('Principle');
Result: 'P65214'
示例 2:
考虑一个名为 Sample 的数据库表,其中包含以下记录:
Data | Words |
---|---|
Data1 | Here |
Data2 | Heir |
Data3 | Smith |
Data4 | Smythe |
Data5 | To |
Data6 | Too |
Data7 | Two |
获取 Words列 的所有记录的 soundex 字符串,可以使用以下查询:
SELECT *, SOUNDEX(Words) AS SOUNDEX_Value FROM Sample;
这将产生类似于以下内容的结果:
Data | Words | SOUNDEX_Value |
---|---|---|
Data1 | Here | H600 |
Data2 | Heir | H600 |
Data3 | Smith | S530 |
Data4 | Smythe | S530 |
Data5 | To | T000 |
Data6 | Too | T000 |
Data7 | Two | T000 |