数据表
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,...