1.char_length()函数计算字符串的字符个数
SELECT CHAR_LENGTH('test'),CHAR_LENGTH('测试')
2.使用length()函数计算字符串的字节长度
SELECT LENGTH('test'),LENGTH('测试')
3.使用concat(s1,s2,…)函数连接多个字符串,如果被连接的参数有一个是NULL,则返回NULL。
SELECT CONCAT('my','sql'),CONCAT('my',null,'sql')
4.使用concat_ws(x,s1,s2,..)函数连接带有分隔符的多个字符串,如分隔符为NULL,则结果为NULL,如分隔符后的参数为NULL,则忽略之
SELECT CONCAT_WS('*','first','second','third'),
CONCAT_WS('&','你','我'),
CONCAT_WS(null,'first','second','third'),
CONCAT_WS('&','你','我',null)
5.用insert(str,pos,len,newstr)函数进行字符串替换操作
SELECT INSERT('first',2,3,'second')AS column1,
INSERT('first',-1,2,'second')AS column2,
INSERT('first',6,3,'second')AS column3,
INSERT('first',3,20,'second')AS column4,
INSERT('first',3,NULL,'second')AS column5
6.使用LPAD(s1,len,s2)函数对字符串进行左侧填充操作,RPAD(s1,len,s2)函数进行右侧填充操作
SELECT LPAD('abcd',3,'**'),LPAD('abcd',7,'**')
由执行结果可以看出,len取值为3时,小于字符串’abcd’的长度,此时s1缩短为从左到右的3位长度的字符串’abc’,当len取值为7时,大于字符串’abcd’的长度,则在其左侧填补字符串’**’,直至满足七位长度。
SELECT RPAD('abcd',3,'**'),RPAD('abcd',7,'**')
7.使用函数TRIM(s1 FROM str)对原始字符串str的左右两端进行匹配性删除的操作
SELECT TRIM('st' FROM 'stabcstpqst'),CONCAT('(',TRIM(' df '),')')
由执行结果可以看出,原始字符串‘stabcstpqst’中只有左右两端的‘st’被删除了,中间的并没有被删除;缺省参数S1时,跟TRIM(str)函数的作用一样,即删除左右两端的空格。
8.使用函数substring(str,pos,len)截取原始字符串str中从pos开始的len长度字符串的操作。
SELECT SUBSTRING('mysql',3,2)AS column1,
SUBSTRING('mysql',3)AS column2,
SUBSTRING('mysql',-4,3)AS column3,
SUBSTRING('mysql',-5)AS column4
当pos取值为-4时,返回‘mysql’末尾开始第四位‘y’,取3位,即‘ysq’
9. 使用函数LOCATE(s1,str),匹配子字符串s1在字符串str中第一次出现的位置
SELECT LOCATE('my','mysql'),
LOCATE('sql','mysqlmysql'),
LOCATE('sy','mysql')
10.使用函数ELT(n,s1,s2,s3…..sn)返回指定位置的字符串操作
SELECT ELT(3,'ie','ff','chrome','360'),ELT(3,'ie','ff')
11.使用函数FIELD(s,s1,s2,s3,….)和函数FIND(s1,s2)返回指定字符串位置的操作,二者不同之处在于当指定字符串为NULL时,一个返回0,一个返回NULL。
SELECT FIELD('my','my1','my2','my')AS column1,
FIELD('MY','mysql','php')AS column2,
FIELD(NULL,'s1','s2')AS column3
SELECT FIND_IN_SET('ie','ff,chrome,ie,safari')AS column1,
FIND_IN_SET('ie,ff','ie,ff,chrome')AS column2,
FIND_IN_SET(NULL,'a,b,c')AS column3