1 回答

TA贡献1963条经验 获得超6个赞
我不是大佬,我来说说我的想法吧。
首先是地区表示,你知道有种官方的编码叫做行政区划代码吗?这个在民政部可以查到,不过没有格式化的数据。你也可以找网上别人已经整理好的地区库。
我们可以把代码存放到数据库中,也可以写到文件中,这就看你自己了。
就拿你的例子来说,广东省广州市白云区的代码是440111
,浙江省杭州市西湖区是330106
。
其实代码很好理解,每两位数分别代表省、市、县。
44
就是广东省,的33
就是浙江省。 01
在广东省下就是广州市,在浙江省下就是杭州市。
表示上级地区的,是在后面补0足6位。
比如广东省就是440000
,广东省广州市就是440100
。
所以我们保存某地区的公司时,只要把对应的代码存起来就行了。
比如公司表:
id name district
1 广东省1公司 440000
2 广东省2公司 440000
3 广东省广州市白云区公司 440111
在网页地区选择中,返回的value只要对应价格两位就够了。
比如sheng=44&shi=01&xian=11
我们处理时补出三个代码
440000、440100和440111
然后我们直接查找公司表
如SELECT * FROM company WHERE district=440000 OR district=440100 OR district=440111;
然后返回结果,我们再一一检查就行了。
当然,可能公司很多,一次返回的结果太多了,我们可以先查询440111的,有结果就返回,没有就再查询440100的,以此类推。
甚至,我们能在SQL中就完成这个操作
SELECT CASE WHEN EXIST(SELECT * FROM company WHERE district=440111) THEN (SELECT * FROM company WHERE district=440111) WHEN EXIST(SELECT * FROM company WHERE district=440100) THEN (SELECT * FROM company WHERE district=440100) ELSE (SELECT * FROM company WHERE district=440000) END;
当然,你不想用地区代码,想要自己编码,甚至直接保存中文也是可以的,操作都是类似的。
以上代码手机输入,未经过验证,请自行搜索相关内容理解后使用。
- 1 回答
- 0 关注
- 242 浏览
添加回答
举报