您当前的位置: 站长圈 > 技术文章 > 数据库技术 > MySQL函数——字符串函数

MySQL函数——字符串函数

来源:站长圈 作者:adminzzq 点击: 0
1、计算字符串字符数的函数和字符串长度的函数
 char_length(str)返回值为字符串str所包含的字符个数。
例:使用char_length(str)函数计算字符串字符个数,在PHPMyAdmin中输入SQL语句:
\
执行后得:
\
length(str)返回值为字符串的字节长度,使用utf8编码字符集时,一个汉字是3个字节,一个数字或字母算一个字节。
例:使用length(str)函数计算字符串长度,输入SQL语句:
\
执行后得:
\
2、合并字符串函数concat(s1,s2,……)、concat_ws(x,s1,s2,……)
concat(s1,s2,……)返回结果为连接参数产生的字符串。如有任何一个参数为NULL,则返回值为NULL。如果所有参数均为非二进制字符串,其结果也为非二进制字符串。如果参数中含有任一二进制字符串,其结果也为一个二进制字符串。
例:使用concat()函数连接字符串,输入SQL语句:
\
执行后得
\
concat_ws(x,s1,s2,……)  concat_ws代表concat with separator(用分隔符连接),是concat()的特殊形式。第一个参数是其他参数的分隔符,分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其他参数。如果分隔符不NULL,其结果也为NULL。函数会忽略任何分隔符参数后的NULL值。
例:使用concat_ws()函数连接带分隔符的字符串,输入SQL语句:
\
执行后得
\
3、替换字符串的函数insert(s1,x,len,s2)
Insert(s1,x,len,s2)返回字符串s1,其子字符串起始于 x 位置和被字符串s2取代的len字符。
s1——原字符串,x——从原字符串的第 x 位开始替换,len——在原字符串中替换 len 长度的字符,s2——用来替换的字符串。
如果 x 超过字符串s1的长度,则返回值为原始字符串。假如len的长度大于其字符串的长度,则从位置 x 开始替换。若任何一个参数为NULL,则返回值为NULL。
例:使用insert()函数进行字符串替代操作,输入SQL语句:
\
执行后得
\
 
4、字母大小写转换函数
lower(str)或者lcase(str)可以将字符串str中的字母字符全部转换成小写字母。
例:使用lower(str)函数或者lcase(str)函数将字符串全部转换成小写字母,输入SQL语句
\
执行后得
\
upper(str)或者ucase(str)可以将字符串str中的字母字符全部转换成大写字母。
例:使用upper(str)函数或者ucase(str)函数将字符串中的所有字母字符转换为大写字母,输入SQL语句:
\
执行后得
\
5、获取指定长度的字符串的函数left(s,n)和right(s,n)
left(s,n)返回字符串s 开始的最左边n 个字符。
例:使用left()函数返回字符串中左边的字符,输入SQL语句:
\
执行后得
\
right(s,n)返回字符串s最右边n 个字符。
例:使用right()函数返回字符串中右边的字符,输入SQL语句:
\
执行后得
\
6、填充字符串的函数lpad(s1,len,s2)和rpad(s1,len,s2)
lpad(s1,len,s2)返回字符串s1,其左边由字符串s2填补到len字符长度。假如s1的长度大于len,则返回值被缩短至len字符长度。
例:使用lpad()函数对进行填补操作,输入SQL语句:
\
执行后得
\
rpad(s1,len,s2)返回字符串s1,其右边由字符串s2填补到len字符长度。假如s1的长度大于len,则返回值被缩短至len字符长度。
例:使用rpad()函数对进行填补操作,输入SQL语句:
\
执行后得
\
7、删除空格的函数ltrim(s)、rtrim(s)和trim(s)
ltrim(s)返回字符串s,同时字符串左侧空格被删除。
例:使用ltrim()函数删除字符串左边的空格,输入SQL语句:
\
执行后得
\
从结果可以看到原字符串左右都留有空格,使用了ltrim()函数后,左边的空格被删除了,右边仍然保留。
rtrim(s)返回字符串s,同时字符串右侧空格被删除。
例:使用rtrim()函数删除字符串右边的空格,输入SQL语句:
\
执行后得
\
从结果可以看到原字符串左右都留有空格,使用了rtrim()函数后,右边的空格被删除了,左边仍然保留。
trim(s)删除字符串s左右两侧的空格。
例:使用trim()函数删除字符串左右侧的空格,输入SQL语句:
\
执行后得
\
从结果可以看到原字符串左右都留有空格,使用了trim()函数后,左右两侧的空格都被删除了。
8、删除指定字符串的函数trim(s1 from s)
Trim(s1 from s)删除字符串s中两端所有的子字符串s1。s1为可选项,在未指定情况下,删除空格。
例:使用TRIM(s1 FROM s)函数删除字符串中两端指定的字符,输入SQL语句如下:
\
执行后得
\
9、重复生成字符串的函数repeat(s,n)
repeat(s,n)返回一个由重复的字符串s组成的字符串,字符串s的数目等于n。若n<=0,则返回一个空字符串。若s或n为NULL,则返回NULL。
例:使用REPEAT函数重复生成相同的字符串,输入SQL语句如下:
\
执行后得
\
10、空格函数space(n)和替换函数replace(s,s1,s2)
space(n)返回一个由n个空格组成的字符串。
例:使用SPACE函数生成由空格组成的字符串,输入SQL语句如下:
\
执行后得
\
replace(s,s1,s2)使用字符串s2替代字符串s中所有的字符串s1。
例:使用REPLACE函数进行字符串替代操作,输入SQL语句如下:
\
执行后得
\
11、比较字符串大小的函数strcmp(s1,s2)
Strcmp(s1,s2)若所有的字符串均相同,由返回0;若根据当前分类次序,第一个参数小于第二个,则返回-1,其他情况返回1。
例:使用STRCMP函数比较字符串大小,输入SQL语句如下:
\
执行后得
\
12、获取子串的函数substring(s,n,len)和mid(s,n,len)
substring(s,n,len)带有len参数的格式,从字符串s返回一个长度同len字符相同的子字符串,起始于位置n。也可能对n使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的n字符,即倒数第n个字符,而不是字符串的开头位置。
s——原字符串,n——获取子串的起始位置,len——子串的长度。
例:使用SUBSTRING函数获取指定位置处的子字符串,输入SQL语句如下:
\
执行后得
\
mid(s,n,len)与substring(s,n,len)的作用相同。
例:使用MID()函数获取指定位置处的子字符串,输入SQL语句如下:
\
执行后得
\
如果对len使用的是一个小于1的值,则结果始终为空字符串。
13、匹配子串开始位置的函数
Locate(str1,str)、position(str1 in str)和instr(str,str1)三个函数作用相同,返回子字符串str1在字符串str中的开始位置。
例:使用LOCATE,POSITION,INSTR函数查找字符串中指定子字符串的开始位置,输入SQL语句如下:
\
执行后得
\
14、字符串逆序的函数reverse(s)
Reverse(s)将字符串s反转,返回的字符串的顺序和s字符串的顺序相反。
例:使用REVERSE函数反转字符串,输入SQL语句如下:
\
执行后得
\
15、返回指定位置的字符串的函数
elt(n,字符串1,字符串2,字符串3,……,字符串1)若n=1,则返回值为字符串1,若n=2,则返回值为字符串2,以此类推。若n小于1或大于参数的数目,则返回值为NULL。
例:使用ELT函数返回指定位置字符串,输入SQL语句如下:
\
执行后得
\
16、返回指定字符串位置的函数field(s,s1,s2,……)
Field(s,s1,s2,……)返回字符串s在列表s1,s2,……中第一次出现的位置,在找不到s的情况下,返回值为0。如果s为NULL则返回值为0,原因是NULL不能同任何值进行同等比较。
例:使用FIELD函数返回指定字符串第一次出现的位置,输入SQL语句如下:
\
执行后得
\
17、返回子串位置的函数find_in_set(s1,s2)
find_in_set(s1,s2)返回字符串s1的字符串s2中出现的位置,字符串列表是一个由多个逗号‘,’分开的字符串组成的列表。如果s1不在s2或s2这空字符串,则返回值为0。如果任意一个参数为NULL,则返回值为NULL。这个函数在第一个参数包含一个逗号‘,’时将无法正常运行。
例:使用FIND_IN_SET()函数返回子字符串在字符串列表中的位置,输入SQL语句如下:
\
执行后得
\
虽然find_in_set()和field()两个函数格式不同,但作用类似,都可以返回指定字符串在字符串列表中的位置。