求在这个程序(或者数据库语句)中的最佳算法[
在数据库中有 有字段:邮编号 省份 城市1 城市2 区县1 区县2
如表所示
序号 邮编号 省份 城市1 城市2 区县1 区县2
-------------------------------------------------------
1 030100 山西省 太原市 太原市 阳曲县 阳曲县(黄寨镇)
2 350011 福建省 福州市 福州市 晋安区 晋安区
3 030200 山西省 太原市 太原市 古交市 古交市
4 030025 山西省 太原市 太原市 晋源区 晋源区
5 056800 河北省 邯郸市 邯郸市 魏县 魏县(魏城镇)
6 057750 河北省 邯郸市 邯郸市 馆陶县 馆陶县(馆陶镇)
7 057650 河北省 邯郸市 邯郸市 广平县 广平县(广平镇)
8 057350 河北省 邯郸市 邯郸市 鸡泽县 鸡泽县(鸡泽镇)
我想要的结果就是:
当我输入一个地址:“福州市晋安区珠宝路2号AA大厦” 就能得给出 邮编号是:
350011[color=#FF0000][/color]
有时地址是不全的,问如何得出最匹配的邮编号
请问在程序中用什么算法最快,是在程序上做,还是在SQL查询语句上处理?
------解决方案--------------------你这个模糊匹配也太模糊了点
------解决方案--------------------不现实,也不科学,用户的输入是不规范的,倒是可以在程序里面做成百度搜索提示效果。
------解决方案--------------------要是能符合如下的还好做点:
福州市晋安区或者山西省古交市,且区和市和县,镇之类的字眼不能少
不然一个上海福建路古交大厦88号广平分部营业厅
起码会让你的sql模糊一阵了
------解决方案--------------------这也太能扯了吧
case when 试试
------解决方案--------------------考虑程序来实现分词搜索,sql 干着太蹩脚了。
------解决方案--------------------在牛的程序也没有智能到这种地步。你如果无法控制客户端的输入,那么只能是大量的报错。人工智能还没实现。
你到百度去搜索,如果输入模糊,不也是经常出来N个结果吗?百度后面的输入分析,代码有几万行。
建议你跟客户做个妥协,稍微分下段。比如省、市、区。这三个用不同的变量,或者中间的间隔你程序能控制。
------解决方案--------------------搜索引擎适合来做这个。不太懂。帮顶。
------解决方案--------------------省份城市用选择的来,其实这个js脚步实现最好了!