前言
基本上用java的都是用的Mysql数据库来进行数据的存储服务。
Mysql里面有很多自带的查找函数,掌握它其实是很有必要的。
今天和大家分享的是如何进行内容的查找替换操作。
背景
有个数据字段product_name,因为前期设计的原因,将中英文保存到了一起。假如存储内容如下:
帕图斯酒庄红葡萄酒(Petrus, Pomerol, France)
因为业务的变动,需要对其拆分,使用两个字段来进行存放。
解决思路
常规解决思路:
1、使用instr函数找到拆分的位置 ;
2、使用substring进行截取
3、然后使用替换函数替换掉( 和 )
组合起来就是
-- 获得中文名称
substring(product_name,instr(product_name,'('),1)
-- 获得英语名称
REPLACE(REPLACE(substring(product_name,instr(product_name,...
大家会发现,如果按照常规解题思路来,发现嵌套太深。
有没有简单点的呢?
这个还真有
快速解决思路
这里推荐大家使用substring_index
substring_index里面可以使用负数哦。
substring_index(str,delim,count)
说明:substring_index(待截取有用部分的字符串,截取数据依据的字符,截取字符的位置N)
还是解决原来的那个问题
-- 获得中文名称
substring_index(product_name,'(',1)
-- 获得英语名称
REPLACE(substring_index(product_name,'(',-1),')','')
看起来是不是简单了很多。
总结
没事多看看官方文档