我使用Java,Spring,Ibatis,Oracle数据库。

在该数据库中,我们有1个表是Street,具有1000万条记录,重要的列是street_name。

在GUI中,我必须按街道搜索公司,例如:街道名称输入为Schonburgstrasse,但DB中的正确数据为:Schönburgstrasse(德语)

您可以看到,主要区别在于:o和ö。而且可以肯定的是,我无法通过SQL找到该记录:

Select * from Street where street_name = 'Schonburgstrasse';


规则是:


我无法再更改数据库架构。
我无法将1000万条记录一一归一化。之后比较数据


(归一化方法,我将具有从以下位置进行转换的功能:从Schönburgstrasse,到:Schonburgstrasse)


我必须注意性能问题。


谢谢你的时间。

最佳答案

尝试使用Oracle SOUNDEX命令,因此查询将如下所示:

Select * from Street where soundex(street_name) = soundex('Schonburgstrasse');

关于java - 比较街道名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47529018/

10-11 02:34