java+mysql传户籍地址匹配值

后台传的户籍地址是“湖南省益阳市桃江县桃花江镇胜利街72号”,数据库表结构及数据如图图片说明
需要匹配到的数据应该是图片说明户籍地址里面有可能没有省市区县等关键字,
求大神解答~~~如解答被采纳可微信转账100元作为报酬,谢谢~~~

https://www.baidu.com/link?url=1gIqQ1uVmLcYk-xUQpJ3e7JrO0p1Rax_NgwDuWx5Re4u0m0M9afKhnaf_wAGCF6IUXO-qtzyZQApUZ7bdjuI9HMqGh7tH9V4yT88vuj-itq&wd=&eqid=c0a423ce00005cd6000000055a027224

将“湖南省益阳市桃江县桃花江镇胜利街72号”在后台拆分成“湖南”、“益阳”、“桃江”、“胜利”,使用 LIKE "%湖南%" OR LIKE "%益阳%" OR LIKE "%胜利%"进行查询,试试看吧

类似楼上的拆分模糊查询,但是一般这样的,你在前端页面控制住,通过哪种3级联动,让用户下拉选择,最后再输入详细地址,这样才好进行啊,可以去看看各大平台的收货地址的设计,如果是纯手写的最后去查询,这个就不好控制啦!

你将表中address制度按拆分成Province(省)、 City(市)、Area(区)、和detailAddress(详细地址)这四个字段,前端就采用全国的省市区的三级联动

显示的时候也可以拼接和拆分

这时候 我觉得 数据库 需要一个三级地址表。。。

首先你拿到的是用户传给你的一串地址 sss ;

最后你需要入表的string 我们定义为 temp

取前3-4个字符。匹配三级地址里面的 一级地址 省级。province_info 湖南,广东
sss.subString(0,3) like province_info 如果匹配上了一个某一个地址info[1] :湖南。

temp += info[1]+“省”;

再继续 sss.截取掉 info[1]这个值。。那么现在变成 省XX市XX县XXXXXX香;

这时候判断第一个字是否是省 是截取掉。不是的话 不变。继续下一步。

从刚刚匹配到的省。查出对应的 city_info[];
再从剩下的字符串里面 like city_info 。
剩下的就是继续慢慢改了。。注意防止有没有bug,及特殊字符串。比如 有的市名字太长等等。

或许 你试试三级联动 后台查询的时候 应该就不会有这样的问题了