1
select SOUNDEX('ram')

将返回“R500”

有没有办法输入'R500'并返回'ram'

像这样的东西

select reverse_of_SOUNDEX('R500')

RESULT
--------
ram
4

2 回答 2

3

您会遇到与尝试反转任何多对一映射函数相同的问题。

虽然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')
于 2014-01-03T08:44:05.570 回答
2

Soundex 映射本质上是一个哈希码(即多对一映射)。

因此,它不是唯一可逆的。

soundex 有几个词可以映射到R500,映射前你无法分辨哪个是原词。

于 2014-01-03T08:44:06.880 回答