MySQL函数之字符串截取

set @str='www.cnblogs.com/ljt1412451704/';
select LEFT(@str,3);-- www
select RIGHT(@str,3); -- 04/
select substr(@str,2); -- ww.cnblogs.com/ljt1412451704/
select SUBSTRING(@str,-3,2);-- 04
select substring_index(@str,'.',1);-- www
select substring_index(@str,'/',2);-- www.cnblogs.com/ljt1412451704
select substring_index(substring_index(@str,'.',-2),'.',1);-- cnblogs

函数: 
1、从左开始截取字符串 
left(str, length) 
说明:left(被截取字段,截取长度) 
例:set @str='www.cnblogs.com/ljt1412451704/';
  


2、从右开始截取字符串 
right(str, length) 
说明:right(被截取字段,截取长度) 
例:select RIGHT(@str,3);


3、截取字符串 
substring(str, pos) 
substring(str, pos, length) 
说明:substring=substr,substr是简写的。

           substring(被截取字段,从第几位开始截取) 
   substring(被截取字段,从第几位开始截取,截取长度) 
例:select substr(@str,2);
  select SUBSTRING(@str,-3,2);
(注:如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度) 


4、按分隔符截取字符串 
substring_index(str,delim,count) 
说明:substring_index(被截取字段,分隔符,分隔符出现的次数) 
例:select substring_index("blog.jb51.net",".",2);-- blog.jb51
       select substring_index(@str,'.',1);-- www
       select substring_index(@str,'/',2);-- www.cnblogs.com/ljt1412451704
  select substring_index(substring_index(@str,'.',-2),'.',1);-- cnblogs
(注:如果分隔符出现的次数是负数 如-2 则是从后倒数,到字符串结束) 

函数简介:

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 使用一个负值。

 
原文地址:https://www.cnblogs.com/ljt1412451704/p/12090050.html