MariaDB 函数

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 的数据库表,其中包含以下记录:

DataWords
Data1Here
Data2Heir
Data3Smith
Data4Smythe
Data5To
Data6Too
Data7Two

获取 Words列 的所有记录的 soundex 字符串,可以使用以下查询:

SELECT *, SOUNDEX(Words) AS SOUNDEX_Value FROM Sample; 

这将产生类似于以下内容的结果:

DataWordsSOUNDEX_Value
Data1HereH600
Data2HeirH600
Data3SmithS530
Data4SmytheS530
Data5ToT000
Data6TooT000
Data7TwoT000