Mysql 取用逗号分隔的字串的子串的方法:SUBSTRING_INDEX
前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到教程。
有一張部門(mén)表:appbricks_department ,有 id 字段和?rank_tree 字段。
rank_tree:記錄的是當(dāng)前部門(mén)的所有父級(jí)部門(mén)的 id , 逐級(jí)拼接,用逗號(hào)分隔,直到本級(jí)部門(mén)id。
如:A院 - B中心 - C科 - D室 ,則D室的 rank_tree 值為:A的id ,??B的id ,?C的id ,D的id 。
?
需求:根據(jù)當(dāng)前部門(mén) id ,查對(duì)應(yīng)部門(mén)層級(jí)中第 2 級(jí)部門(mén)的名稱(chēng) 。
1. 先查到 rank_tree:
2. 根據(jù) rank_tree 取部門(mén)第2級(jí)的部門(mén)id :
取到前2級(jí)部門(mén)的id字串: SUBSTRING_INDEX(ad.rank_tree, ',', 2) 如:054234545F80B4844A90B,DA1E528C02C643546DBC5ECC再取這個(gè)字串逗號(hào)分隔的第2位,等于倒過(guò)來(lái)取的第1位: SUBSTRING_INDEX(SUBSTRING_INDEX(ad.rank_tree, ',', 2), ',', -1)) 得到最終要的id:DA1E528C02C643546DBC5ECC?
在mysql中提供了一些字符串操作的函數(shù),其中SUBSTRING_INDEX(str, delim, count)
str: 要處理的字符串
delim: 分割符
count: 計(jì)數(shù) 如果為正數(shù),則從左開(kāi)始數(shù),如果為負(fù)數(shù),則從右開(kāi)始數(shù)
3.實(shí)現(xiàn)業(yè)務(wù)查詢(xún):
?
?
總結(jié)
以上是生活随笔為你收集整理的Mysql 取用逗号分隔的字串的子串的方法:SUBSTRING_INDEX的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: webshell下执行CMD的小技巧
- 下一篇: Sql添加Oracle数据库的表空间和用