目录
前言
在维护数据库的时候常常会遇到需要对已存在的数据进行截取,替换等操作,当然在操作数据之前最好是进行备份原数据,毕竟数据无价,修改出错还可以恢复。
介绍
substring_index()就是MySQL中对数据进行截取的操作函数。使用参数格式如下:
substring_index(参数str,参数delim,参数count)
解读:substring_index(要截取的字段,根据哪个字符截取,截到第几个指定的字符位置【写整数 可以是正整数也可以是负整数,正整数从左向右计算,负整数从右向左计算 】)
如何使用
eg:修改示例表user中header字段内容,修改为原数据'?' 问号之前的数据。
id | name | header |
1 | 小马 |
利用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”。
注:具体操作可根据实际需求情况进行处理。
附:不积跬步无以至千里,不积小流无以成江河。