服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - mysql中截取字符串的6个函数讲解

mysql中截取字符串的6个函数讲解

2022-08-29 13:52墨 尘 Mysql

这篇文章主要介绍了mysql中截取字符串的6个函数讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mysql截取字符串的6个函数

1、LEFT(str,len)

从左边开始截取,str:被截取字符串;len:截取长度

示例:

mysql中截取字符串的6个函数讲解

 

2、RIGHT(str,len)

从右边开始截取,str:被截取字符串;len:截取长度

示例:

mysql中截取字符串的6个函数讲解

 

3、SUBSTRING(str, pos, len)

str:被截取字符串;pos:截取开始位置;len:截取长度(非必填:不填截取到最大长度)

示例1:

mysql中截取字符串的6个函数讲解

示例2:

mysql中截取字符串的6个函数讲解

 

4、SUBSTR(str, pos, len) 

与SUBSTRING(str, pos, len)函数的使用一样

str:被截取字符串;pos:截取开始位置;len:截取长度(非必填:不填截取到最大长度)

示例1:

mysql中截取字符串的6个函数讲解

示例2:

mysql中截取字符串的6个函数讲解

 

5、MID(str, pos, len) 

与SUBSTRING(str, pos, len)函数的使用一样

str:被截取字符串;pos:截取开始位置;len:截取长度(非必填:不填截取到最大长度)

示例1:

mysql中截取字符串的6个函数讲解

示例2:

mysql中截取字符串的6个函数讲解

 

 6、SUBSTRING_INDEX(str, delim, count)

  • str:被截取字符串;delim:截取数据依据的字符;
  • count截取数量(count>0就从左边开始取,count<0就从右边开始取)

示例1:

mysql中截取字符串的6个函数讲解

示例2:

mysql中截取字符串的6个函数讲解

示例3:

mysql中截取字符串的6个函数讲解

最后再说一个函数,截取字符串一般都会用到这个函数: LOCATE(substr,str)

作用: 查找字符串中指定字符的位置

  • substr搜索的字符
  • str字符串

str 字符串 中获得 substr 字符 的位置(没找到返回 0)

示例1:

mysql中截取字符串的6个函数讲解

示例2:

mysql中截取字符串的6个函数讲解

示例3:

mysql中截取字符串的6个函数讲解

 

mysql截取字符串中间的值

 

substring_index函数

substring_index(str,delim,count)
  • str: 要处理的字符串
  • delim: 分隔符
  • count: 计数

例如: str = www.51aaa.com

substring_index(str,".",1)

结果是:www

substring_index(str,".",2)

结果是:www.51aaa

也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容

substring_index(str,".",-1)

结果是:com

substring_index(str,".",-2)

结果是:51aaa.com

相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容

那么,如果我要中间的的aaa怎么办?

很简单的,两个方向:从右数第二个分隔符的右边全部,再从左数的第一个分隔符的左边:

先获取

substring_index(remarks,"1",-1) as mm

结果是: aaa.com

然后是

substring_index("aaa.com",".",1) as mm

结果是: aaa.com

合起来就是:

substring_index(substring_index(str,"1",-1),".",1)

 

应用

数据表t_record的字段remark的值为字符串 1#56次

这里截取#和次之间的字符串,即获取数字56

下面sql的-1表示从重右侧数第一个#,1表示从左侧数起第一个次

select substring_index(substring_index(remarks,"#",-1),"次",1) from t_record

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文地址:https://blog.csdn.net/m_crayon/article/details/118720330

延伸 · 阅读

精彩推荐