MySQL | 字符串函数

目录

一、计算字符串字符数的函数和字符串长度的函数

二、合并字符串函数CONCAT(s1,s2,...)、CONCAT_WS(x,s1,s2,...)

 三、替换字符串的函数INSERT(s1,x,len,s2)

四、字母大小写转换函数

五、获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n) 

六、填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)

 七、删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)

八、删除指定字符串的函数TRIM(s1 FROM s) 

 九、重复生成字符串的函数REPEAT(s,n)

十、空格函数SPACE(n)和替换函数REPLACE(s,s1,s2)

十一、比较字符串大小的函数STRCMP(s1,s2) 

十二、获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len) 

 十三、匹配子串开始位置的函数

十四、字符串逆序的函数REVERSE(s) 

十五、返回指定位置的字符串的函数 

十六、返回指定字符串位置的函数FIELD(s,s1,s2,...,sn)

十七、返回子串位置的函数FIND_IN_SET(s1,s2) 

 十八、选取字符串的函数MAKE_SET(x,s1,s2,...,sn)


字符串函数主要用来处理数据库中的字符串数据。MySQL中的字符串函数有计算字符串长度函数、字符串合并函数、字符串替换函数、字符串比较函数、查找指定字符串位置函数等。


一、计算字符串字符数的函数和字符串长度的函数

 CHAR_LENGTH(str)返回值为字符串str所包含的字符个数。一个多字节字符算作一个单字符。

例:“SELECT CHAR_LENGTH('date')”返回4。

LENGTH(str)返回值为字符串的字节长度,使用utf8(UNICODE的一种变长字符编码,又称万国码)编码字符集时,一个汉字是3字节,一个数字或字母算1字节

例:“SELECT LENGTH('date')”返回4。(英文字符的个数和所占的字节相同。一个字符占1个字节)

二、合并字符串函数CONCAT(s1,s2,...)、CONCAT_WS(x,s1,s2,...)

CONCAT(s1,s2,...)返回结果为连接参数产生的字符串,或许有一个或多个参数。如有任何一个参数为NULL,则返回值为NULL。如果所有的参数均为非二进制字符串,则结果为非二进制字符串。如果自变量中含有任一二进制字符串,则结果为一个二进制字符串

在CONCAT_WS(x,s1,s2,...)中,CONCAT_WS代表CONCAT With Separator,是CONCAT()的特殊形式。第一个参数x是其他参数的分隔符,分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其他参数。如果分隔符为NULL,则结果为NULL。函数会忽视任何分隔符参数后的NULL值。

例:“SELECT CONCAT_WS('*','1st','NULL','3rd')”返回 1st*3rd。

 三、替换字符串的函数INSERT(s1,x,len,s2)

 INSERT(s1,x,len,s2)返回字符串s1,其子字符串起始于x位置和被字符串s2取代的len字符。如果x超过字符串长度,则返回原始字符串。假如len的长度大于其他字符串的长度,则从位置x开始替换。若任何一个参数为NULL,则返回值为NULL

四、字母大小写转换函数

LOWER(str)或者LCASE(str)可以将字符串str中的字母字符全部转换成小写字母

UPPER(str)或者UCASE(str)可以将字符串str中的字母字符全部转换成大写字母

五、获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n) 

 LEFT(s,n)返回字符串s开始的最左边n个字符。

RIGHT(s,n)返回字符串s最右边的n个字符。

六、填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)

LPAD(s1,len,s2)返回字符串s1,其左边由字符串s2填补到len字符长度。假如s1的长度大于len,则返回值被缩短至len字符。

RPAD(s1,len,s2)返回字符串s1,其右边被字符串s2填补到len字符长度。假如s1的长度大于len,则返回值被缩短至len字符。

 七、删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)

LTRIM(s)返回字符串s,字符串左侧空格字符被删除。

RTRIM(s)返回字符串s,字符串右侧空格字符串被删除。

TRIM(s)删除字符串s两侧的空格。

八、删除指定字符串的函数TRIM(s1 FROM s) 

TRIM(s1 FROM s)删除字符串s中两端所有的子字符串s1。s1为可选项,在未指定情况下,删除空格。 

 九、重复生成字符串的函数REPEAT(s,n)

REPEAT(s,n)返回一个由重复的字符串s组成的字符串,字符串s的数目等于n。若n<=0,则返回一个空字符串。若s或n为NULL,则返回NULL。

十、空格函数SPACE(n)和替换函数REPLACE(s,s1,s2)

SPACE(n)返回一个由n个空格组成的字符串。

REPLACE(s,s1,s2)使用字符串s2替代字符串s中所有的字符串s1。

十一、比较字符串大小的函数STRCMP(s1,s2) 

STRCMP(s1,s2):若所有的字符串均相同,则返回0;若根据当前分类次序,第一个参数小于第二个,则返回-1;其他情况返回1。

十二、获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len) 

SUNSTRING(s,n,len)带有len参数的格式,从字符串s返回一个长度与len字符相同的子字符串,起始于位置n。也有可能对n使用一个负值。假若这样,则字符串的位置起始于字符串结尾的n字符,即倒数第n个字符,而不是字符串的开头位置。

MID(s,n,len)的用法与SUBSTRING(s,n,len)相同。

如果对len使用的是一个小于1的值,则结果始终为空字符串。

 十三、匹配子串开始位置的函数

LOCAL(str1,str)、POSITION(str1 IN str)和INSTR(str,str1)3个函数作用相同,返回子字符串str1在字符串str中的开始位置。 

十四、字符串逆序的函数REVERSE(s) 

REVERSE(s)将字符串s反转,返回字符串的顺序与s字符串顺序相反。

十五、返回指定位置的字符串的函数 

ELT(N,字符串1,字符串2,字符串3,...,字符串N):若N=1,则返回值为 字符串1;若N=2,则返回值为字符串2;以此类推。若N小于1或大于参数的数目,则返回值为NULL。 

十六、返回指定字符串位置的函数FIELD(s,s1,s2,...,sn)

FIELD(s,s1,s2,...,sn)返回字符串s在列表s1,s2,...,sn中第一次出现的位置,在找不到s的情况下,返回值为0。如果s为NULL,则返回值为NULL。

十七、返回子串位置的函数FIND_IN_SET(s1,s2) 

FIND_IN_SET(s1,s2)返回字符串s1在字符串列表s2中出现的位置,字符串列表是一个由多个逗号‘,’分开的字符串组成的列表。如果s1不在s2或s2为空字符串,则返回值为0.如果任意一个参数为NULL,则返回值为NULL。这个函数在第一个参数包含一个逗号‘,’时将无法正常运行。

 十八、选取字符串的函数MAKE_SET(x,s1,s2,...,sn)

 MAKE_SET(x,s1,s2,...,sn)函数按x的二进制数从s1,s2,...,sn中选取字符串。例如5的二进制是0101这个二进制从右往左的第1位和第3位是1,所以选取s1和s3。s1,s2,...,sn中的NULL值不会被添加到结果中。

SET(0,'a','b','c')返回空字符串

你可能感兴趣的:(MySQL8从入门到精通,mysql,数据库,大数据,big,data,sql)