数据表 your_tab 的字段 your_field 的值为字符串 user/1024@192.168.1.115

这里截取/和@之间的字符串,即获取数字1024
下面sql的-1表示从重右侧数第一个/,1表示从左侧数起第一个@

SELECT substring_index(substring_index(your_field,’/’,-1),’@’,1) from your_tab

以举例的方式,展示 mysql 的几种 字符串 截取 方法的效果,包括LEFT()、MID()、RIGHT()、SUBSTR()、SUBSTRING_INDEX() 1 .LEFT LEFT(str,len) #从str 左 截取 len 长度的 字符串 SELECT LEFT('22:30(-1)',3) FROM `20190101` WHERE id = 1; ## 结果--> 22: 2 . MID MID(str,pos,len) # 从str pos位置起, 截取 长度为len的 字符串 SELECT MID('22:30(-1)',3,2) FROM `20190101` WHE 如需转帖,请写明出处 http://blog.csdn.net/slimboy123/archive/2009/07/30/4394782.aspx 今天我同事在用 mysql 的时候,需要对一个 字符串 中的 指定 内容 进行 截取 ,如 现有 字符串 "[]aseabcd[12345]ddxabcdsx[]",要 截取 "abcd[" 和 "abcd["之后的第一个 "]" 之间 内容 "12345",当然当 如何 截取 一段 字符串 里特定 字符 内容 ?比如说“-”或者“,”前的字段? 这种做数据的应该频繁被遇到,那么如何提取想要的数据呢?其实很简单,一个substring_index函数就搞定。 substring_index(input,split,index): input:要 截取 字符 ; split:分隔符; Index:要 截取 第index个分隔符左(index为正)或右(index为负)的 字符串 。 图片上的解答方法: SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(字段名," 若为整数则表示从左到右数,若为负数则从右到左数。比如“www. mysql .com” 截取 字符 ‘www’,分割符为“.”,从左到右序号为1,即substring_index("www. mysql .com",'.',1);若从右开始获取“com”则为序号为-1即substring_index("www. mysql .com",'.',-1) mysql 自带的substring可以 截取 固定位置的 字符串 ,也可以 截取 固定长度的 字符串 。delim:分隔符,string存在且用于分割的 字符 ,比如“,”、“.”等。 mysql 截取 第4个逗号到第5个逗号 之间 字符 ,思路如下以 字符 0,1.5,2,0,2.5,2,2,0为例1:先 截取 0到第5个逗号 之间 字符 SUBSTRING_INDEX('0,1.5,2,0,2.5,2,2,0,',',5);如图:2:然后从右边 截取 到第一个出现逗号的位置 position  为负数表示从右边开始 截取 SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(... SELECT NATURECATALOG.CATALOG_FULL_NAME, SUBSTR(NATURECATALOG.CATALOG_FULL_NAME, INSTR(NATURECATALOG.CATALOG_FULL_NAME, '/', 1, 2) + 1, INSTR(NATURECATALOG.... 如 现有 字符串 "[]aseabcd[12345]ddxabcdsx[]",要 截取 "abcd[" 和 "abcd["之后的第一个 "]" 之间 内容 "12345",当然当中的 内容 长度不是固定的,可以是"123456" 或者其他 字符串 。他问我的时候,我第一反应就是想的indexOf,后来查了下 发现 mysql 中没有indexOf 而是 locate。经过半个多小时的尝试,最好帮他实现了这个效果。复... 2、right(str,index)从右边第index开始 截取 3、substring(str,index)当index>0从左边开始 截取 直到结束 当index<0从右边开始 截取 直到结束 当index=0返回空 4、substring(str,index,...