需求如下:
给出主机名,例如`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'
如果各位还有其他更好的实现方法,欢迎指教。