前言
在开发过程中,字符串的截取虽然可以在程序代码中来做,但是如果可以在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