我使用Java、Spring、Ibatis、Oracle数据库。
在该数据库中,我们有 1 个表是 Street,包含 1000 万条记录,重要的列是 street_name。
从GUI中,我必须按街道搜索公司,例如:输入的街道名称是Schonburgstrasse,但数据库中的正确数据是:Schönburgstrasse (德语)
你可以看到,主要的区别是: o 和 ö 。当然我无法通过 SQL 找到这条记录:
Select * from Street where street_name = 'Schonburgstrasse';
规则是:
我无法再更改数据库架构。
我无法将 10M 记录逐条标准化。之后比较数据
(标准化意味着,我将有函数将 From : Schönburgstrasse 转换为 : Schonburgstrasse)
- 我必须处理性能问题。
感谢您的宝贵时间。
最佳答案
尝试使用 Oracle SOUNDEX命令,因此查询将如下所示:
Select * from Street where soundex(street_name) = soundex('Schonburgstrasse');
关于java - 比较街道名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47529018/