鍍金池/ 問(wèn)答/Java  數(shù)據(jù)庫(kù)/ 【SQL查詢(xún)語(yǔ)句】sql 實(shí)現(xiàn)滿(mǎn)足其中一部分條件時(shí),立即返回結(jié)果。

【SQL查詢(xún)語(yǔ)句】sql 實(shí)現(xiàn)滿(mǎn)足其中一部分條件時(shí),立即返回結(jié)果。

sql 實(shí)現(xiàn)滿(mǎn)足其中一部分條件時(shí),立即返回結(jié)果。

例:
table 表

addr value
江蘇省 js
江蘇省揚(yáng)州市江都區(qū) jsyzjd
江蘇省揚(yáng)州市 jsyz
default

如果傳入【江蘇省】則查出【js】;
如果傳入【江蘇省揚(yáng)州市】則查出【jsyz】;
如果傳入【江蘇省揚(yáng)州市江都區(qū)】則查出【jsyzjd】;
如果傳入【江蘇省揚(yáng)州市江都區(qū)武堅(jiān)鎮(zhèn)】則查出【jsyzjd】;
如果傳入【江蘇省徐州市】則查出【js】;
如果傳入【江蘇省揚(yáng)州市高郵鎮(zhèn)】則查出【jsyz】;
如果傳入【北京市】則查出【default】;

回答
編輯回答
薄荷糖

其實(shí)就是選出最長(zhǎng)前綴匹配的那行:

select value from t1
where '江蘇省揚(yáng)州市高郵鎮(zhèn)' like addr || '%'
order by char_length(addr) desc limit 1

clipboard.png

2017年10月3日 14:26