常用的字符串函数
函数 | 说明 |
CONCAT(str1,str2,...) | 返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为null则返回值为null |
CONCAT_WS(x,str1,str2,...) | 返回多个字符串拼接之后的字符串,每个字符串之间有一个x |
SUBSTRING(str,index,len),MID(str,index,len) | 两个函数作用相同,从字符串str中返回一个 第index个字符开始,长度为len的字符串。 |
LEFT(str,n),RIGHT(str,n) | 前者返回字符串str从左边开始的n个字符,后者返回字符串str从最右边开始的n个字符 |
INSERT(str1,index,len,str2) | 返回字符串str1,其子字符串起始于位置index,被字符串str2取代len个字符 |
REPLACE(str,str1,str2) | 返回一个字符串,用字符串str2替代字符串str中所有的字符串str1 |
LOCATE(str1,str),POSITION(str1 IN str),INSTR(str,str1) | 三个函数作用相同,返回字符串str1在字符串str中的开始位置(从第几个字符开始) |
FIELD(str,s1,s2,......) | 返回第一个与字符串str匹配的字符串的位置 |
1.字符串的拼接
1.1 CONCAT(str1,str2,...)
返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为null则返回值为null
sql: SELECT CONCAT('现在的时间:',NOW())
结果: 现在的时间:2019-07-10 21:15:15
1.2 CONCAT_WS(x,str1,str2,...)
返回多个字符串之后的字符串,每个字符串之间有一个x
sql: SELECT CONCAT_WS('*','asdf','dgfg','dfdfgh')
结果: asdf*dgfg*dfdfgh
2. 字符串的截取
2.1 SUBSTRING(str,index,len) MID(str,index,len)
两个函数作用相同,从字符串str中返回第index个字符开始,长度为len的字符串
sql: SELECT SUBSTRING('123456789',4,3)
结果: 456
sql: SELECT MID('123456789',3,2)
结果: 34
2.2 LEFT(str,n) RIGHT(str,n)
前者返回字符串str从最左边开始的第n个字符,后者返回字符串str从最右边开始的第n个字符
sql: SELECT LEFT('123456789',4)
结果: 1234
sql: SELECT RIGHT('123456789',4)
结果: 6789
3. 字符串的替换
3.1 INSERT(str1,index,len,str2)
返回字符串str1,其子字符串起始于位置index,被字符串str2取代len个字符
sql: SELECT INSERT('abcdefg',2,3,'#')
结果: a#efg
3.2 REPLACE(str,str1,str2)
返回一个字符串,用字符串str2替代字符串str中的所有的字符串str1
sql: SELECT REPLACE('123456789','123','#')
结果: #456789
4. 字符串的查询位置
4.1 LOCATE(str1,str) POSITION(str1 in str) INSTR(str,str1)
三个函数作用相同,返回自字符串str1在字符串str中的开始位置(从第几个字符开始)
sql: SELECT LOCATE('c','abcdefg')
结果: 3
sql: SELECT POSITION('c' IN 'abcdefg')
结果: 3
sql: SELECT INSTR('abcdefg','c')
结果: 3
4.2 FIELD(str,str1,str2,...)
返回第一个与字符串str匹配的字符串的位置
sql: SELECT FIELD('c','b','c','d','e')
结果: 2