Mysql字符串截取函数SUBSTRING的用法说明
感觉上MySQL的字符串函数截取字符,比用程序截取(如python, PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用。
(1) 函数简介:
SUBSTRING(
str
,
pos
) , SUBSTRING(
str
FROM
pos
) SUBSTRING(
str
,
pos
,
len
) , SUBSTRING(
str
FROM
pos
FOR
len
)
不带有
len
参数的格式从字符串
str
返回一个子字符串,起始于位置
pos
。带有
len
参数的格式从字符串
str
返回一个长度同
len
字符相同的子字符串,起始于位置
pos
。 使用 FROM的格式为标准 SQL 语法。也可能对
pos
使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的
pos
字符,而不是字符串的开头位置。在以下格式的函数中可以对
pos
使用一个负值。
(2) 具体用法和示例:
1、从左开始截取字符串
left(str, length)
说明:left(被截取字段,截取长度)
2、从右开始截取字符串
right(str, length)
说明:right(被截取字段,截取长度)
例子:
select type_name, left(type_name,1) as left_substr,right(type_name,2) as right_substr from tdb_goods_types
3、截取字符串
substring(str, pos)
substring(str, pos, length)
说明:substring(被截取字段,从第几位开始截取)
substring(被截取字段,从第几位开始截取,截取长度)
备注:
(注:如果位数是负数 如-3 则是从后倒数位数,到字符串结束或截取的长度)
例子:
select type_name,SUBSTRING(type_name,2),SUBSTRING(type_name,1,2),SUBSTRING(type_name,-3,2) from tdb_goods_types
4、截取字符串
SUBSTRING(
str
FROM
pos
) 和 SUBSTRING(
str
,
pos
,
len
)
select type_name,SUBSTRING(type_name from 2 for 2),SUBSTRING(type_name from 2) from tdb_goods_types
5、按关键字截取字符串
substring_index(str,delim,count)
说明:substring_index(被截取字段,关键字,关键字出现的次数)
(注:如果关键字出现的次数是负数 如-2 则是从后倒数,到字符串结束)
例:
SELECT type_name,SUBSTRING_INDEX(type_name,'、',1),SUBSTRING_INDEX(type_name,'电',1),SUBSTRING_INDEX(type_name,'电',-1) FROM tdb_goods_types