项目场景:

在将数据落地到数据库后,应业务需求,需要截取特定数据用作另一字段值;如:现有字段areaName值为:海南省东方市…,现想将areaName省份信息截取存到province


问题描述

网上搜罗一圈,发现MySQL提供的截取函数要么需要明确截取长度,要么subString_index()截取不包含指定字符串,如substring_index(‘海南省东方市’, ‘省’, 1)截取结果为:海南


解决方案:

结合INSTR(),left()函数截取即可。

left(str, length):字符串截取

select left('baidu.com', 3) 截取结果为bai

instr:返回子串第一次出现的索引,如果没有则返回0

SELECT INSTR('LOL','L')  # 输出 1 (mysql是从1开始算位数)

最终SQL如下:

select LEFT('海南省东方市', INSTR('海南省东方市', '省')) as province;

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐