select SOUNDEX('ram')
将返回“R500”
有没有办法输入'R500'并返回'ram'
像这样的东西
select reverse_of_SOUNDEX('R500')
RESULT
--------
ram
您会遇到与尝试反转任何多对一映射函数相同的问题。
虽然ram
可能是一个词为您提供 soundex 代码r500
,但大量其他词也是如此(ran、rim、run、rune、rain 等,具体取决于您使用的 soundex 变体)。
那么您希望在这种情况下显示哪个单词?
如果您要查找单词列表,一种可能性是使用大量单词(来自某处的字典)及其 soundex 代码填充一个表。插入单词后,可以通过以下方式轻松设置代码:
update sxmap set sxcode = soundex(word)
然后你可以简单地做:
select word from sxmap where sxcode = 'R500'
或者:
select word from sxmap where sxcode = soundex('ram')
Soundex 映射本质上是一个哈希码(即多对一映射)。
因此,它不是唯一可逆的。
soundex 有几个词可以映射到R500
,映射前你无法分辨哪个是原词。