Mysql - 字符串截取、拆分
前言
在开发过程中,字符串的截取虽然可以在程序代码中来做,但是如果可以在 SQL 语句中处理,又不会造成 SQL 语句变的很复杂,那自然就可以在 SQL 语句中处理,速度还会更快一点。这个就需要根据具体的业务进行衡量了
概述
一、截取字符串:SUBSTRING(...)、SUBSTR(...)、MID(str,pos,len)
SUBSTRING(...)
语法: SUBSTRING(str FROM pos FOR len)、SUBSTRING(str FROM pos)、SUBSTRING(str, pos)、SUBSTRING(str, pos, len)
举例:
- 从位置 2 开始,提取 3 个字符
SELECT SUBSTRING(模型资料-6 FROM 2 FOR 3) // 型资料
- 从末尾开始,提取 5 个字符
SELECT SUBSTRING(模型资料-6,-5,5) // 型资料-6
- 从位置 6 开始,提取之后的所有字符
SELECT SUBSTRING(模型资料-6,6) // 6
SUBSTR(...)
用法等同于 SUBSTRING(...),语法也相同
MID(str,pos,len)
只有这一种语法,用法等同于 SUBSTRING(...)
二、拆分字符串:SUBSTRING_INDEX(str, delim, count)
举例:
- 取分隔符之后的字符
SELECT SUBSTRING_INDEX(模型资料-6,-,-1) // 6
- 取分隔符之前的字符
SELECT SUBSTRING_INDEX(模型资料-6,-,1) // 模型资料
三、替换函数:REPLACE(str,from_str,to_str)
举例:
- 将 模型资料- 替换为 模型
SELECT REPLACE(模型资料-6,模型资料-,模型) // 模型6