第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據(jù)省市區(qū)搜索內(nèi)容, 如當(dāng)前級別沒有, 則搜索上一級內(nèi)容?

根據(jù)省市區(qū)搜索內(nèi)容, 如當(dāng)前級別沒有, 則搜索上一級內(nèi)容?

qq_笑_17 2018-07-21 07:57:15
有一個需求, 需要根據(jù)始發(fā)地和目的地去搜索對應(yīng)的運(yùn)輸公司, 始發(fā)地和目的地需要選擇省市區(qū)(縣), 如果指定的地區(qū)沒有對應(yīng)的運(yùn)輸公司, 則給出上一級的運(yùn)輸公司。例如:搜索 廣東省廣州市白云區(qū) 到 浙江省杭州市西湖區(qū) 的運(yùn)輸公司,假如上面沒有匹配的,那么就搜索廣東省廣州市白云區(qū) 到 浙江省杭州市 的運(yùn)輸公司;假如上面沒有匹配的,那么就搜索廣東省廣州市 到 浙江省杭州市 的運(yùn)輸公司;假如上面沒有匹配的,那么就搜索廣東省廣州市 到 浙江省 的運(yùn)輸公司;假如上面沒有匹配的,那么就搜索廣東省 到 浙江省 的運(yùn)輸公司;目前的想法是把這些數(shù)據(jù)放在一個表里,根據(jù)始發(fā)地和目的地的省市區(qū)(縣)6個條件去搜索, 然后做幾次判斷,直至搜索出結(jié)果。正在尋找一個更優(yōu)的解決方案,求大佬們指點(diǎn)。建表和代碼方面,使用的是mysql、php。
查看完整描述

1 回答

?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個贊

我不是大佬,我來說說我的想法吧。

首先是地區(qū)表示,你知道有種官方的編碼叫做行政區(qū)劃代碼嗎?這個在民政部可以查到,不過沒有格式化的數(shù)據(jù)。你也可以找網(wǎng)上別人已經(jīng)整理好的地區(qū)庫。

我們可以把代碼存放到數(shù)據(jù)庫中,也可以寫到文件中,這就看你自己了。

就拿你的例子來說,廣東省廣州市白云區(qū)的代碼是440111,浙江省杭州市西湖區(qū)是330106。

其實(shí)代碼很好理解,每兩位數(shù)分別代表省、市、縣。

44就是廣東省,的33就是浙江省。 
01在廣東省下就是廣州市,在浙江省下就是杭州市。

表示上級地區(qū)的,是在后面補(bǔ)0足6位。
比如廣東省就是440000,廣東省廣州市就是440100

所以我們保存某地區(qū)的公司時,只要把對應(yīng)的代碼存起來就行了。

比如公司表:
id name district
1 廣東省1公司 440000
2 廣東省2公司 440000
3 廣東省廣州市白云區(qū)公司 440111

在網(wǎng)頁地區(qū)選擇中,返回的value只要對應(yīng)價格兩位就夠了。

比如sheng=44&shi=01&xian=11

我們處理時補(bǔ)出三個代碼
440000、440100和440111

然后我們直接查找公司表

SELECT * FROM company WHERE district=440000 OR district=440100 OR district=440111;

然后返回結(jié)果,我們再一一檢查就行了。

當(dāng)然,可能公司很多,一次返回的結(jié)果太多了,我們可以先查詢440111的,有結(jié)果就返回,沒有就再查詢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;

當(dāng)然,你不想用地區(qū)代碼,想要自己編碼,甚至直接保存中文也是可以的,操作都是類似的。

以上代碼手機(jī)輸入,未經(jīng)過驗(yàn)證,請自行搜索相關(guān)內(nèi)容理解后使用。



查看完整回答
反對 回復(fù) 2018-07-21
  • 1 回答
  • 0 關(guān)注
  • 234 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號