天天看點

mysql截取字元串類型中最後一個下劃線‘_’之前的字元串

需求如下:

給出主機名,例如`name=交換機_11樓研發中心_100.29`,`福利/保安/棉花_0.11`得到`交換機_11樓研發中心,福利/保安/棉花`這個名稱。
           

實作方法:

利用

reverse()

函數,即反轉字元串

方案:

先利用

reverse()

函數,将這些字元串翻轉;

然後利用mysql的

substr()

來截取字元串;

截取了之後再用

reverse()

翻轉過來即可。

mysql截取字元串類型中最後一個下劃線‘_’之前的字元串

實作代碼:

REVERSE(SUBSTR(REVERSE(h.`name`) FROM INSTR(REVERSE(h.`name`),'_')+1))
           

執行個體代碼:

select h.`name` n,INSTR(REVERSE(h.`name`),'_') aa,
SUBSTR(REVERSE(h.`name`) FROM INSTR(REVERSE(h.`name`),'_')+1) a,
REVERSE(SUBSTR(REVERSE(h.`name`) FROM INSTR(REVERSE(h.`name`),'_')+1)) `name`
 from hosts h where h.`name` = '交換機_11樓研發中心_100.29' 
           

如果各位還有其他更好的實作方法,歡迎指教。

繼續閱讀