在mysql中反转soundex

时间:2014-01-03 08:39:46

标签: mysql sql soundex

select SOUNDEX('ram')

将返回'R500'

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

类似这样的事情

select reverse_of_SOUNDEX('R500')

RESULT
--------
ram

2 个答案:

答案 0 :(得分:3)

您遇到与尝试撤消任何多对一映射功能相同的问题。

虽然ram可能是一个单词,它会为您提供soundex代码r500,但大量其他单词(运行,边缘,运行,符文,下雨)也是如此等等,取决于您使用的soundex版本。)

那么你希望在那种情况下显示哪个字?

如果你在一个单词列表之后,有一种可能性就是填充一个包含大量单词的表格(来自某个地方的字典)以及它们的soundex代码。在插入单词后,可以很容易地设置代码:

update sxmap set sxcode = soundex(word)

然后你就可以做到:

select word from sxmap where sxcode = 'R500'

或:

select word from sxmap where sxcode = soundex('ram')

答案 1 :(得分:2)

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

因此它不是唯一可逆的。

有几个单词可以soundex映射到R500,你无法分辨出映射前的原始单词。