mysql中的字符函数举例

1:字符函数

    concat()

   说明:将字符串连接,可以是一个或多个字符串。若都是非二进制的字符,那么返回的结果也是非二进制的。若包含任何二进制字符,那么结果则是二进制的。若是数值型的,也将转换成非二进制的形式。若其中任意一个字符是NULL,则CONCAT()返回的结果为NULL.。

  语法:concat(str1,str2......)

  举例:

  SELECT CONCAT('你','是','谁');结果为:你是谁

   SELECT CONCAT('你',NULL,'谁'); 结果为:NULL

   SELECT CONCAT(13.2);结果为:13.2

   concat_ws()

   说明:表示用分隔符将字符串连接,是一种特殊形式的连接函数。第一个参数表示分隔符,各字符串之间通过分隔符连接,分隔符可以是一个字符串,也可以是其他形式,如果分隔符为NULL,那么返回的结果也是NULL。

   语法:CONCAT_WS(separator,str1,str2,…);

   举例:

    SELECT CONCAT_WS('-','1','2','3');  结果为:1-2-3

    SELECT CONCAT_WS(NULL,'1','2','3'); 结果为:NULL

    ELT()

    说明:ELT函数是指返回一个字符串List的第N个元素,如果N=1,返回str1;如果N=2,返回str2. 如果N小于1或大于字符串元素的个数,则返回NULL。

     语法:ELT(N,str1,str2,str3,…);

     举例:

     SELECT ELT(4,'1','2','3'); 结果为:NULL

     SELECT ELT(1,'你','是','谁'); 结果为:你

    FIELD()

     说明:FIELD函数是指返回某字符串在字符串List的位置,如果字符串List未找到指定的字符串,则返回0. 若FIELD()中所有的参数都是字符串型,则将以字符串类型作为比较;如果所有的参数都是数字型,则将以数字类型作为比较;否则,以double类型进行比较。如果字符串为NULL,则返回的值为0,因为NULL和所有值比较都不相等。

      语法:FIELT(N,str1,str2,str3,…);

      举例:

       SELECT FIELD('你','你','是','谁'); 结果为:1

       SELECT FIELD('好','你','是','谁'); 结果为:0

       SELECT FIELD(NULL,'你','是','谁'); 结果为:0

    INSERT()

      说明:从起始位置截取一定长度的字符串,用新字符串代替截取的字符串,返回结果。如果位置不在字符串的长度范围内,则返回原始字符串。如果长度不在字符串剩余长度范围内,则从起始位置将剩余的字符串替换。如果任意一个参数为NULL,则结果返回NULL。

      语法:INSERT(str,pos,len,newstr);

      举例:

      SELECT INSERT('Quadratic',3,4,'What');  结果为:QuWhattic

      SELECT INSERT('Quadratic',-1,4,'What');  结果为:Quadratic

      SELECT INSERT('Quadratic',3,100,'What');  结果为:QuWhat

      SELECT INSERT('Quadratic',NULL,100,'What');  结果为:NULL

   INSTR()

     说明:返回字符串中所要截取的字符串第一次出现的位置。此函数的功能和带有两个参数的LOCATE()函数相同,只是参数的顺序是相反的。

      语法:INSTR(str,substr);

     举例:

         SELECT INSTR('foobarbar',bar'); 结果为:4

         SELECT INSTR('xbar','foobar'); 结果为:0

   LOCATE()

       说明:带有两个参数的LOCATE()函数返回字符串中所要截取的字符串第一次出现的位置。三个参数的LOCATE()指的是从字符串的指定位置开始,得出所要截取的字符串第一次出现的位置

       语法:LOCATE(substr,str),LOCATE(substr,str,pos)

       举例;

          SELECT LOCATE('bar','foobarbar'); 结果为:4

           SELECT LOCATE('xbar','foobar');;结果为:0

           SELECT LOCATE('bar','foobarbar',5);结果为:7

   SUBSTRING()

        说明:和SUBSTR()同义。共有4种形式。没有len参数的形式,是指从指定的位置开始截取字符串,结果是截取后的字符串;有len参数的,是指从指定的位置开始截取len长度的字符串;带有FROM的形式,是标准的SQL形式,但其位置可能是一个负数,则截取字符串是从字符串最后位置开始截取,而不是起始位置。

         语法:SUBSTRING(str,pos),SUBSTRING(str FROM pos),SUBSTRING(str,pos,len),SUBSTRING(str FROM pos FOR len)

         举例:省略。。。

    SUBSTRING_INDEX()

          说明:返回一个字符串中,从某个标记出现的某个次数开始截取的结果。如果次数是一个正值,则返回这个字符左边的所有字符;如果这个值是一个负值,则返回这个字符右边的所有字符。

          语法:SUBSTRING_INDEX(str,delim,count)

          举例:

            SELECT SUBSTRING_INDEX('www.mysql.com','.',2);结果为:www.mysql

            SELECT SUBSTRING_INDEX('www.mysql.com','.',-2);结果为:mysql.com

 

    

posted @ 2018-11-14 12:39  朱哥哥666  阅读(297)  评论(0编辑  收藏  举报