1. 程式人生 > >Mysql 取用逗號分隔的字串的子串的方法:SUBSTRING_INDEX

Mysql 取用逗號分隔的字串的子串的方法:SUBSTRING_INDEX

有一張部門表:appbricks_department ,有 id 欄位和 rank_tree 欄位。

rank_tree:記錄的是當前部門的所有父級部門的 id , 逐級拼接,用逗號分隔,直到本級部門id。

如:A院 - B中心 - C科 - D室 ,則D室的 rank_tree 值為:A的id ,  B的id , C的id ,D的id 。

需求:根據當前部門 id ,查對應部門層級中第 2 級部門的名稱 。

1. 先查到 rank_tree:


2. 根據 rank_tree 取部門第2級的部門id :

取到前2級部門的id字串: SUBSTRING_INDEX(ad.rank_tree, ',', 2)  
如:054234545F80B4844A90B,DA1E528C02C643546DBC5ECC

再取這個字串逗號分隔的第2位,等於倒過來取的第1位: SUBSTRING_INDEX(SUBSTRING_INDEX(ad.rank_tree, ',', 2), ',', -1))
得到最終要的id:DA1E528C02C643546DBC5ECC

在mysql中提供了一些字串操作的函式,其中SUBSTRING_INDEX(str, delim, count)

str: 要處理的字串

delim: 分割符

count: 計數 如果為正數,則從左開始數,如果為負數,則從右開始數

3.實現業務查詢:


相關推薦

Mysql 取用逗號分隔的字串的子方法SUBSTRING_INDEX

有一張部門表:appbricks_department ,有 id 欄位和 rank_tree 欄位。rank_tree:記錄的是當前部門的所有父級部門的 id , 逐級拼接,用逗號分隔,直到本級部門id。如:A院 - B中心 - C科 - D室 ,則D室的 rank_tre

java代碼根據逗號分隔,然後加上單引號 ,並返回

system spl tostring 返回 pre spi string sys java public class SpiltString { public String spilt(String str) { StringBuffer sb = new

再談怎樣以最簡單的方法將泛型為String類型的集合或String類型的數組轉化為逗號間隔形式

集合 ret 類型 author sta rgs bsp lan ont 今天review代碼,看見某些大爺在將泛型為String類型的集合或String類型的數組轉化為逗號間隔字符串形式時仍然僅僅顧結果不註重過程,“大爺”咱能負點責任嗎?

MySql 查詢以逗號分隔的字串的方法(正則)

現資料庫表中某個欄位儲存的值為“01,07,08”,需要sql去查詢下表中到相應的名稱: NND,一點思路都木有,想了老久,突然想到了正則表示式....!啊哈哈哈..... 1、最開始想到的是find_in_set()... 查詢欄位中包含01,07,08的記錄:

串子數目的方法

最近在做一些演算法題,經常遇到字串的問題,需要計算字串子串的數目,字串的子串數目為 n(n+1)/2 + 1,這個答案是如何求得的呢? 我們都知道子串是一個字串中連續的一段,其實你可以把它抽象為

Java中獲取特定符號中間串子方法

使用str.split(" "); 方法 如: 將str這個字串用逗號“,”進行分割,分割後的字串陣列放在a[]中 比如 111,222,333 那麼a[0]=111 a[1]=222 a[2]=

javascript方法總結

大小寫 comm 其他 tolower 匹配 一行 ror 運算 轉換 一、單引號字符串內部可以使用雙引號,雙引號字符串內部也可以使用單引號 "hello ‘world‘" ‘welcome "to" js‘ 二、多行和轉義 如果要在單引號字符串的內部,使用單引號(或者

字典轉json方法

mutable nbsp bject pla error: tab 空格 字符串 arc [self convertToJsonData:_editDictionary]; /** 字典轉json字符串方法 */ -(NSString *)convertToJsonData

String方法具體解釋

字符串替換 ring float args 語言環境 comm format obj phi Java開發中,基本都會用戶String,有些時候忘記了它還有某一個方法,或者曾經沒有使用到。而這些方法可能會節約非常多時間。自己為了學習這些方法,決定對部分測

javaScript方法(常用的)

last rip 字符串 如果 真的 一個 scrip 替換 匹配 1.toLowerCase();把字符串裏的字母轉換為大寫。 例如: var str ="abcD"; str=str.toLowerCase(); 結果為: ABCD 2.toUpperCase();

javascript基礎之方法

abcd font earch 分割 定位 lastindex toupper 參數 方法 1:屬性length就是獲取字符串的長度註意:中文、數字、英語字母、空格,都是1個長度eg:"快樂大本營 oh".length//8var str = ‘abc‘.length;//

關於js中的方法和數組方法總結

nic 進度 數組 位置 eat spa 對象 空字符 from   最近學習進度很緊張,每天要吸收的知識很多,對於之前學習過的知識有點淡忘,為了鞏固之前的所學知識,總結一篇關於字符串和數組的方法。                     關於字符串的知識總結  str

js方法、數組方法整理

不包含 -1 兼容ie 方法 each 轉換 sub 數組方法 val push 向數組末尾添加一項 返回值為數組的長度; pop 刪除數組最後一項; unshift 向數組開頭增加一項; shift 刪除數組第一項; splice 刪除數組

Pandas學習筆記,方法(string method)

api long top method hand capi borde tle row 一般語法格式Series.str.method()。具體方法見http://pandas.pydata.org/pandas-docs/stable/api.html#string-ha

MySQL,Oracle中空和NULL

oracl 字符串 空字符 sql name pda 不起作用 作用 upd Mysql 中空字符串和NULL是不一樣的。 Oracle中空字符串就是NULL。 update User set realname =‘‘ where name = "ff"; -- 在O

python3方法

ndt rjust new span rst iss color dfs con >>> str=‘absfgsdf‘ >>> type(str) <class ‘str‘> >>> dir(str) [‘

JavaScript 方法

r+ dea java set 結束 多個參數 ext itl 但是 字符方法<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> &

JavaScript 方法(二)

cal sat pos scrip 一個 tle 字符位置 分割 text 字符串大小寫轉換方法<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"&

每天學習點--------第四天(2017-09-26) 摘要: 常用的方法閱讀全文

.cn cnblogs img src log nbsp png image http 每天學習點--------第四天(2017-09-26) 摘要: 常用的字符串方法閱讀全文

String.split()分割方法

是把 使用 方法 array pan 字符串方法 -s 用法 ade split方法的主要用處就是:分割字符串split方法返回的是數組類型主要由以下幾種用法:1.比如有一個字符串var str = "bcadeab";對str使用split方法var strArray =