MySQL字符串截取函数有:left(),right(),substring(),substring_index(),还有mid() ,subset()。但mid() ,subset()和substring()功能一样。所以会用substring()就行了。
为方便起见,所以在本次MySQL连接中设置了一个用户自定义变量,字符串@str,以方便下面多次对其的操作。
1、自定义变量设定的sql:
set @str:='www.hao123.com.cn'; -- 注意:MySQL中字符下标从 1 开始,如本例中str下标为:1~17。不同于编程语言中数组下标从0开始。
2、left()
-- left(str,len) -- 从字符串的第3个位置开始截取 select left(@str,3) -- 结果:www
3、right()
-- right(str,len) -- 从字符串倒数(右侧)第3个位置开始截取 select right(@str,3) -- 结果:.cn
4、substring()
-- substring(str FROM pos FOR len) -- 从字符串的第1个位置,截取长度为4 select substring(@str from 1 for 4) -- 结果:www. -- substring(str FROM pos) -- 从字符串的第4个位置,到结尾为止 select substring(@str from 4) -- 结果:.hao123.com.cn -- substring(str,pos,len) -- 从字符串的第1个位置,截取长度为4 select substring(@str,1,4) -- 结果:www. -- substring(str,pos) -- 从字符串的第4个位置,到结尾为止 select substring(@str,4) -- 结果:.hao123.com.cn
-- substring(str FROM pos FOR len) -- 从字符串倒数第5个位置开始截取,截取长度为3 select substring(@str from -5 for 3) -- 结果:om. -- substring(str FROM pos) -- 从字符串倒数第4个为止开始截取,到字符串结束 select substring(@str from -4) -- 结果:m.cn -- substring(str,pos,len) -- 从字符串倒数第5个位置开始截取,截取长度为3 select substring(@str,-5,3) -- 结果:om. -- substring(str,pos) -- 从字符串倒数第4个为止开始截取,到字符串结束 select substring(@str,-4) -- 结果:m.cn
5、substring_index()
-- substring_index(str,delim,count) -- 从字符串第1个位置开始,到关键字出现的第2个位置的前(左)1位为止 select substring_index(@str,'.',2) -- 结果:www.hao123 -- 如果找不到关键字,则返回整个字符串 select substring_index(@str,'。',2) -- 结果:www.hao123.com.cn select substring_index(@str,'.',10) -- 结果:www.hao123.com.cn
-- substring_index(str,delim,count) -- 注意:取出开始位置:关键字倒数第2次出现的位置的下(右)1位 -- 取出结束位置:给定字符串最后1位 select substring_index(@str,'.',-2) -- 结果:com.cn -- 找不到关键字,则返回整个字符串 select substring_index(@str,'.',-10) -- 结果:www.hao123.com.cn