假设我有一张美国城市及其相应州的表格:
City State_Abbr State
Charlotte NC North Carolina
Fort Mill SC South Carolina
Columbia SC South Carolina
Dallas TX Texas
... ... ...
当然,桌子要大得多,但你明白了。现在,我希望用户能够通过 HTML 页面上的单个输入在此表上执行搜索。寻找北卡罗来纳州夏洛特的用户可能会输入以下任何内容:
charlotte north carolina
charlotte, nc
north carolina charlotte
nc charlotte
charlotte
...
或者他们可能拼错单词 cherlote 而不是 charlotte...
设置搜索查询的最佳方法是什么?我应该删除搜索字符串中除字符之外的所有字符并用空格分隔,然后对表中的每个字段执行 SOUNDS LIKE 吗?如果输入诸如夏洛特北卡罗来纳州,我将如何确定夏洛特是城市部分而北卡罗来纳州是州?
是否可以在普通的 SQL 查询中完成所有这些操作,或者在构建实际查询之前我是否需要通过 Java 或 Javascript 之类的东西执行一些预处理?
只是寻找最灵活的方法。使用太多 OR 似乎会返回非常随机的结果。
我不想将这个问题仅限于 java,但如果我需要预处理 Java 是我最舒服的语言。