我在移动设备上有 ac# 应用程序,上面有 sqlce 数据库。
在数据库中有一张大表,我想在其中搜索城市或地址的名称。问题是,城市名称来自不同的来源,或者是由不同的人插入的,因此城市包含例如Saint XXX、St. YYY和St ZZZ。
在我的搜索中,我搜索 fpr St XXX还是搜索Saint XXX都无关紧要。结果应该是一样的
当然这个问题不仅仅出现在圣徒这个词上,它只是一个例子。我还不知道多少,但会有很多不同的术语。
我有一些方法,比如更换
SELECT REPLACE(REPLACE(name,'St.','Saint'),'St','Saint') FROM cities WHERE name = REPLACE(REPLACE(@SearchTerm,'St.','Saint'),'St','Saint')
但是性能很差。
也SoundEx
没有真正给出我需要的结果,因为 Saint 和 St 听起来根本不相似。
城市名称来自外部数据源(通过合并复制),因此我无法在服务器上更新它们,也不想更新城市名称,而是使用它们,因为它们存储在数据库中。
我怎样才能进行搜索以满足我的需求?