Mysql 从零开始(五)函数之字符串函数

来源:互联网 发布:淘宝入驻费用多少钱 编辑:程序博客网 时间:2024/05/16 17:59
一、计算字符串字符数的函数和字符长度的函数
 1、char_length(str) 返回字符串str 所包含的字符个数。    一个多字节字符算作一个单字符如:char_length('中国') 结果为2. 2、length(str) 返回字符串str的字节长度。    使用UTF8编码时一个汉字是3个字节,一个数字或字母为一个字节如:length('中国')结果为6
二、合并字符串函数
 1、concat(s1,s2,...)返回结果为多个参数连接产生的字符串;     a)如果参数中有NULL,则结果为NULL;     b)如果参数中有二进制字符串,则结果为二进制字符串。 2、concat_sw(x,s1,s2,...)第一个参数x是其他字符串的分隔符,位置在要连接的字符串之间,可以是一个字符串,也可以是其他参数。     a)如果分隔符为NULL,则结果为NULL;     b)如果参数为NULL,结果中会忽略为NULL的参数。
三、替换字符串函数——insert(s1,x,len,s2)
     把s1从第x位置起,长度为len的部分替换为s2。     例:SELECT INSERT('hello',2,2,'what')把hello从第2位开始(序号是从1开始而不是数组里面从0)长度为2的部分即'el'替换为'what',所以结果为hwhatlo。
四、字母大小写转换函数
     lower(str)和lcase(str)把字符串中的字母字符全部转成小写。     upper(str)和ucase(str)把字符串中的字母字符全部转成大写。
五、获取指定长度的字符串函数
    left(s,n)返回字符串开始最左边的n个字符。如:SELECT LEFT('helloworld',5)结果为hello;    right(s,n)返回字符串开始最右边的n个字符。如:SELECT RIGHT('helloworld',5)结果为world。
六、填充字符串的函数
    lpad(s1,len,s2)在字符串s1的左边填充s2,填充到len长度。如:SELECT LPAD('hello',10,'worldpace')结果为worldhello;    rpad(s1,len,s2)在字符串s1的左边填充s2,填充到len长度。如:SELECT RPAD('hello',10,'ha')结果为hellohahah。
七、删除空格的函数
    ltrim(s)删除字符串s左侧的空格。如:SELECT CONCAT('(',LTRIM ('  hello   ') ,')')结果为(hello   );    rtrim(s)删除字符串s右侧的空格。如:SELECT CONCAT('(',RTRIM ('  hello   ') ,')')结果为(  hello);    trim(s)删除字符串s两侧的空格。如:SELECT CONCAT('(', TRIM('  hello   ') ,')')结果为(hello)。    连接'('和')'是为了让空格显示出来。
八、删除指定字符串的函数
    trim(s1 from s)删除字符串s两端所有的子字符串s1,s1为可选项,在未指定的情况下删除空格。如:SELECT TRIM('xy'FROM 'xyxboxyxxyxy')结果为xboxyx,两端的xy都被删除而中间的并不删除。
九、重复生成字符串的函数——repeat(s,n)
    返回一个由字符串s重复n次组成的字符串。如果n<=0,则结果为空;如果s或n为null,结果为null。如:SELECT REPEAT('ha',3)结果为hahaha。
十、空格函数和替换函数
    space(n)返回一个由n个空格组成的字符串。如:SELECT CONCAT('(',SPACE(5),')')结果为(     )。    replace(s,s1,s2)使用字符串s2,替换字符串s中所有的s1。如:SELECT REPLACE('xxx.baidu.com','x','w')结果为www.baidu.com。
十一、比较字符串大小的函数 ——strcmp(s1,s2)
    如果s1,s2所有字符都相同,结果为0,根据当前分类顺序,s1顺序在s2之前的话,返回-1,其他结果返回1。如:SELECT STRCMP('xxx','yaa')结果为-1。
十二、获取子字符串的函数
    subString(s,n,len)若n为正数,则是从字符串s的第n位开始(包括第n位)长度为len的字符串;                      若n为负数,则是从字符串尾部开始倒数第n个字符开始长度为len的字符串;                      若len为空,则是到字符串结尾;                      若len为负,则结果为null。    如:1、SELECT SUBSTRING('football',5)结果为ball       2、SELECT SUBSTRING('football',5,2)结果为ba       3、SELECT SUBSTRING('football',-4)结果为ball       4、SELECT SUBSTRING('football',-4,2)结果为ba    mid(s,n,len)用法和作用和subString(s,n,len)完全一样
十三、匹配子串开始位置的函数
    locate(str1,str)、position(str1 IN str)、instr(str,str1)三个函数作用相同都是返回子串str1在str中的开始位置。     如:1、SELECT LOCATE('hell','hello')        2、SELECT POSITION('hell' IN 'hello')        3、SELECT INSTR('hello','hell')    返回结果都为1,即子串在str中开始的位置。    如果子串在字符串中找不到返回结果为0。
十四、字符串逆序的函数——reverse(s)
    把字符串s逆序。SELECT REVERSE('hello')结果为olleh
十五、返回指定位置的字符串的函数——elt(n,s1,s2,s3,…)
    若n为1,返回s1;    若n小于1或者大于参数的个数,则返回null。    如:SELECT ELT(3,'a1','b2','c3')   结果为c3       SELECT ELT(3,'1a','2b')结果为null
十六、返回指定字符串位置的函数——field(s,s1,s2,s3,…)
    返回字符串s在字符列表中第一次出现的位置。    若找不到s则返回结果为0;    若s为null则返回结果为0。      SELECT FIELD('3','1','2','3','3','3')返回结果为3
十七、返回子串位置的函数——find_in_set(s1,s2)
    返回字符串s1,在字符串列表中第一次出现的位置。s2是一个以","分割开的字符串列表。        如果s1不在s2列表中或者s2为空字符串返回结果为0;    如果任意一个参数为null则返回结果为null;    如果s1中含有","则无法得到正确结果。    和field(s,s1,s2,s3,...)作用类似,都可以返回指定字符串在字符串列表中的位置。
十八、选取字符串的函数——make_set(x,s1,s2)
    返回由x的二进制指定的相应位置的字符串组成的字符串,规则是一个数的二进制用四位数表示,把这个二进制倒序排列,和s1,s2...位置对应,对应1的取出,对应0的不要。    SELECT MAKE_SET(1,'a','b','c')1的二进制表示为0001,倒叙排列为1000,s1对应1 所以结果为a
0 0
原创粉丝点击