MySQL——substring_index()函数使用

目录

前言

介绍

如何使用


前言

在维护数据库的时候常常会遇到需要对已存在的数据进行截取,替换等操作,当然在操作数据之前最好是进行备份原数据,毕竟数据无价,修改出错还可以恢复。

介绍

substring_index()就是MySQL中对数据进行截取的操作函数。使用参数格式如下:

substring_index(参数str,参数delim,参数count)

解读:substring_index(要截取的字段,根据哪个字符截取,截到第几个指定的字符位置【写整数 可以是正整数也可以是负整数,正整数从左向右计算,负整数从右向左计算 】)

如何使用

eg:修改示例表user中header字段内容,修改为原数据'?' 问号之前的数据。

示例表: user
 id  nameheader
1小马

https://xqgx-xcx.oss-cn-beijing.aliyuncs.com/2021-06-16/69f351fb78f64ce285816d054fbb622d/1.jpg?Expires=1650871632

利用substring_index()函数我们可以这样做处理:

UPDATE `user` SET header = SUBSTRING_INDEX(header,'?',1);

意思就是修改user表中header字段 = 原header字段内容从左到右截取到第一个'?'问号之前的内容。

即截取结果为:

https://xqgx-xcx.oss-cn-beijing.aliyuncs.com/2021-06-16/69f351fb78f64ce285816d054fbb622d/1.jpg

如果把上述修改语句中的1 改成 -1 则截取的是原header字段内容从右到左截取到第一个问号之后的内容,即:Expires=1650871632

如果遇到需要取中间内容的情况我们可以分多次截取

eg:取出“用户@@134543@@435345”这个字符串中“134543”就可以这样操作

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('用户@@134543@@435345','@',3),'@',-1);

①先从左到右截取到第三个@的位置,可获得:“用户@@134543”。

②再从右到左截取到第一个@的位置,可获得:“134543”。

注:具体操作可根据实际需求情况进行处理。

附:不积跬步无以至千里,不积小流无以成江河。

 

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值