需求如下:
給出主機名,例如`name=交換機_11樓研發中心_100.29`,`福利/保安/棉花_0.11`得到`交換機_11樓研發中心,福利/保安/棉花`這個名稱。
實作方法:
利用
reverse()
函數,即反轉字元串
方案:
先利用
reverse()
函數,将這些字元串翻轉;
然後利用mysql的
substr()
來截取字元串;
截取了之後再用
reverse()
翻轉過來即可。
實作代碼:
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'
如果各位還有其他更好的實作方法,歡迎指教。