精华内容
下载资源
问答
  • MySQL中concat函数(连接字符串)  MySQL中concat函数  使用方法:  CONCAT(str1,str2,…)   返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。  注意:  如果所有参数均...

    MySQL中concat函数(连接字符串)

          MySQL中concat函数
          使用方法:
          CONCAT(str1,str2,…)  

          返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

          注意:
          如果所有参数均为非二进制字符串,则结果为非二进制字符串。 
          如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。
          一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:
          SELECT CONCAT(CAST(int_col AS CHAR), char_col)

          MySQL的concat函数可以连接一个或者多个字符串,如
          mysql> select concat('10');
          +--------------+
          | concat('10') |
          +--------------+
          | 10   |
          +--------------+
          1 row in set (0.00 sec)

          mysql> select concat('11','22','33');
          +------------------------+
          | concat('11','22','33') |
          +------------------------+
          | 112233 |
          +------------------------+
          1 row in set (0.00 sec)

          MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL
          mysql> select concat('11','22',null);
          +------------------------+
          | concat('11','22',null) |
          +------------------------+
          | NULL   |
          +------------------------+
          1 row in set (0.00 sec)

          MySQL中concat_ws函数
          使用方法: 
          CONCAT_WS(separator,str1,str2,...)

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

          如连接后以逗号分隔 
          mysql> select concat_ws(',','11','22','33');

          +-------------------------------+
          | concat_ws(',','11','22','33') |
          +-------------------------------+
          | 11,22,33 |
          +-------------------------------+
          1 row in set (0.00 sec)

          和MySQL中concat函数不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL 
          mysql> select concat_ws(',','11','22',NULL);
          +-------------------------------+
          | concat_ws(',','11','22',NULL) |
          +-------------------------------+
          | 11,22 |
          +-------------------------------+
          1 row in set (0.00 sec)

          MySQL中group_concat函数
          完整的语法如下:
          group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

          基本查询

          mysql> select * from aa;
          +------+------+
          | id| name |
          +------+------+
          |1 | 10|
          |1 | 20|
          |1 | 20|
          |2 | 20|
          |3 | 200   |
          |3 | 500   |
          +------+------+
          6 rows in set (0.00 sec)

          以id分组,把name字段的值打印在一行,逗号分隔(默认)

          mysql> select id,group_concat(name) from aa group by id;
          +------+--------------------+
          | id| group_concat(name) |
          +------+--------------------+
          |1 | 10,20,20|
          |2 | 20 |
          |3 | 200,500|
          +------+--------------------+
          3 rows in set (0.00 sec)

          以id分组,把name字段的值打印在一行,分号分隔

          mysql> select id,group_concat(name separator ';') from aa group by id;
          +------+----------------------------------+
          | id| group_concat(name separator ';') |
          +------+----------------------------------+
          |1 | 10;20;20 |
          |2 | 20|
          |3 | 200;500   |
          +------+----------------------------------+
          3 rows in set (0.00 sec)

          以id分组,把去冗余的name字段的值打印在一行,

          逗号分隔

          mysql> select id,group_concat(distinct name) from aa group by id;
          +------+-----------------------------+
          | id| group_concat(distinct name) |
          +------+-----------------------------+
          |1 | 10,20|
          |2 | 20   |
          |3 | 200,500 |
          +------+-----------------------------+
          3 rows in set (0.00 sec)

          以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序

          mysql> select id,group_concat(name order by name desc) from aa group by id;
          +------+---------------------------------------+
          | id| group_concat(name order by name desc) |
          +------+---------------------------------------+
          |1 | 20,20,10   |
          |2 | 20|
          |3 | 500,200|
          +------+---------------------------------------+
          3 rows in set (0.00 sec)

          repeat()函数

          用来复制字符串,如下'ab'表示要复制的字符串,2表示复制的份数

          mysql> select repeat('ab',2);

          +----------------+
          | repeat('ab',2) |
          +----------------+
          | abab           |
          +----------------+

          1 row in set (0.00 sec)

          又如
          mysql> select repeat('a',2);

          +---------------+
          | repeat('a',2) |
          +---------------+
          | aa            |
          +---------------+
          1 row in set (0.00 sec)

    截取字符串

    感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用。 
    函数: 
    1、从左开始截取字符串 
    left(str, length) 
    说明:left(被截取字段,截取长度) 
    例:select left(content,200) as abstract from my_content_t 
    2、从右开始截取字符串 
    right(str, length) 
    说明:right(被截取字段,截取长度) 
    例:select right(content,200) as abstract from my_content_t 
    3、截取字符串 
    substring(str, pos) 
    substring(str, pos, length) 
    说明:substring(被截取字段,从第几位开始截取) 
    substring(被截取字段,从第几位开始截取,截取长度) 
    例:select substring(content,5) as abstract from my_content_t 
    select substring(content,5,200) as abstract from my_content_t 
    (注:如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度) 
    4、按关键字截取字符串 
    substring_index(str,delim,count) 
    说明:substring_index(被截取字段,关键字,关键字出现的次数) 
    例:select substring_index("blog.jb51.net","。",2) as abstract from my_content_t 
    结果:blog.jb51 
    (注:如果关键字出现的次数是负数 如-2 则是从后倒数,到字符串结束) 

    展开全文
  • MySql-字符串拼接函数

    万次阅读 2018-08-04 14:56:04
    摘要 正文 CONCAT:最常用的字符串拼接... 本文介绍MySql中字符串拼接函数。 正文 CONCAT:最常用的字符串拼接函数 语法:CONCAT(str1,str2…) 说明:将str1、str2…直接连接起来,如:执行SELECT CONCAT('...

    摘要

      本文介绍MySql中的字符串拼接函数。

    正文

    CONCAT:最常用的字符串拼接函数

    语法:CONCAT(str1,str2…)
    说明:将str1、str2…直接连接起来,如:执行SELECT CONCAT('a','b','c')将会输出abc

    注意:
    1. 若参数存在NULL则结果为NULL,如:执行SELECT CONCAT('a','b',NULL)将会输出NULL

    CONCAT_WS:使用指定分隔符连接字符串

    语法:CONCAT_WS(separator,str1,str2…)
    说明:CONCAT_WS可以简单的记为concat with separator,使用separator连接str1、str2…,如:执行SELECT CONCAT_WS(',','a','b','c')将会输出a,b,c
    注意:
    1. 若分隔符为NULL,则结果为NULL,如:执行SELECT CONCAT_WS(NULL,'a','b','c')将会输出NULL
    2. 若字符串中存在NULL,则会忽略该字符,如:执行执行SELECT CONCAT_WS(',','a',NULL,'c')将会输出a,c

    GROUP_CONCAT:连接指定列字符串

    语法:GROUP_CONCAT([DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’])
    说明:将指定列连接起来,如:执行SELECT GROUP_CONCAT(name) FROM user 将输出金刚狼,凤凰女,风暴女

    展开全文
  • 1、Mysql中GROUP_CONCAT函数 用于拼接以逗号隔开的字符串 例如:selectGROUP_CONCAT(columnName) from table; 2、Oracle无上函数,但可以使用wm_concat进行拼接字符串 例如:selectwm_concat(columnName) ...

    1、Mysql中 GROUP_CONCAT函数 用于拼接以逗号隔开的字符串 

    例如:select GROUP_CONCAT(columnName) from table;

    2、Oracle中无上函数,但可以使用wm_concat进行拼接字符串

    例如:select wm_concat(columnName) from table;

    3、Oracle中还有另一种拼接方式 用||进行拼接

    例如:select  columnA || columnB  from dual;

    展开全文
  • 简单来说,Mysql中字符串拼接函数主要有三个,分别是CONCAT()、CONCAT_WS()以及GROUP_CONCAT();废话不多说,下面就每个函数具体来看一下: 1、CONCAT()函数 该函数的标准格式应为CONCAT(str1,str2,…),可以有多...

    生死看淡,上来就干!

    简单来说,Mysql中的字符串拼接函数主要有三个,分别是CONCAT()、CONCAT_WS()以及GROUP_CONCAT();废话不多说,下面就每个函数具体来看一下:

    1、CONCAT()函数

    该函数的标准格式应为CONCAT(str1,str2,…),可以有多个参数,Mysql官方手册上对该函数的描述是 Return concatenated string,
    即返回串联的字符串。其实说白了就是对所有参数不加任何修饰的连接到一块,
    如下sql所示:

    mysql> 	SELECT CONCAT("My","sql","plus");
    +---------------------------+
    | CONCAT("My","sql","plus") |
    +---------------------------+
    | Mysqlplus                 |
    +---------------------------+
    1 row in set (0.01 sec)
    
    可以再增加一个参数看下效果:
    
    mysql> 	SELECT CONCAT("My","sql","plus","Apple");
    +-----------------------------------+
    | CONCAT("My","sql","plus","Apple") |
    +-----------------------------------+
    | MysqlplusApple                    |
    +-----------------------------------+
    1 row in set (0.00 sec)
    
    参数理论上可以无限增加,但是我想肯定不会有人这么干,按需求来就好。
    
    CONCAT(str1,str2,...)函数中如果有一个参数为NULL,那么返回的结果就是NULL,如下语句所示:
    
    mysql> 	SELECT CONCAT("My","sql",NULL,"Apple");
    +---------------------------------+
    | CONCAT("My","sql",NULL,"Apple") |
    +---------------------------------+
    | NULL                            |
    +---------------------------------+
    1 row in set (0.00 sec)
    

    在实际工作中按需使用即可。

    2、CONCAT_WS()函数

    该函数的标准格式应为CONCAT_WS(separator,str1,str2,…),
    Mysql官方手册上对该函数的描述是Return concatenate with separator,
    即返回用分隔符连接后的字符串,
    它其实是函数 CONCAT(str1,str2,…)的一种特殊形式,CONCAT_WS()函数的第一个参数是其余参数的分隔符,分隔符被添加到要连接的字符串之间。分隔符可以是字符串,其他参数也可以是字符串。如果分隔符为NULL,则结果为NULL。如下所示:

    mysql> 	SELECT CONCAT_WS("::","sql","plus","Apple");
    +--------------------------------------+
    | CONCAT_WS("::","sql","plus","Apple") |
    +--------------------------------------+
    | sql::plus::Apple                     |
    +--------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> 	SELECT CONCAT_WS(NULL,"sql","plus","Apple");
    +--------------------------------------+
    | CONCAT_WS(NULL,"sql","plus","Apple") |
    +--------------------------------------+
    | NULL                                 |
    +--------------------------------------+
    1 row in set (0.00 sec)
    

    CONCAT_WS()不跳过空字符串。但是,它会跳过分隔符参数之后的任何空值。如下所示:

    mysql> 	SELECT CONCAT_WS("-","My",NULL,"Sql"," ","Plus");
    +-------------------------------------------+
    | CONCAT_WS("-","My",NULL,"Sql"," ","Plus") |
    +-------------------------------------------+
    | My-Sql- -Plus                             |
    +-------------------------------------------+
    1 row in set (0.00 sec)
    

    上面示例中CONCAT_WS()函数忽略了NULL值,但是" "没有忽略,这是在使用中需要注意的地方。

    3、GROUP_CONCAT()函数

    该函数主要用于分组查询中,返回一个字符串数据,其中包含组中连接的非空值。如果没有非空值,则返回空值。 单看这些描述,感觉是有点摸不着头脑,不过不用着急,结合示例就会恍然大悟了。
    查看示例之前首先看下语法结构:

    GROUP_CONCAT([DISTINCT] expr [,expr ...]
                 [ORDER BY {unsigned_integer | col_name | expr}
                     [ASC | DESC] [,col_name ...]]
                 [SEPARATOR str_val])
    

    没错,GROUP_CONCAT()函数的参数可以是sql中相应的表达式,可以包含DISTINCT关键字ORDER BY排序等等。看下具体示例:
    新建表结构如图所示

    具体需求是在部门表中找到所有部门人数相同的部门的ID并拼接成字符串:

    mysql> SELECT nums,count( 1 ) total,
    	GROUP_CONCAT(dname),## 默认使用的是逗号分隔
    	GROUP_CONCAT( DISTINCT deptno ORDER BY deptno DESC SEPARATOR "-" ) AS deptNo #以"-"分隔,并按照deptno降序排列
    FROM dept 
    	GROUP BY nums 
    	HAVING total > 1;
    +------+-------+-----------------------+--------+
    | nums | total | GROUP_CONCAT(dname)   | deptNo |
    +------+-------+-----------------------+--------+
    | NULL |     2 | IT运维,公关部           | 10-9   |
    |   10 |     2 | 财务部,市场部           | 4-3    |
    |   15 |     2 | 运维部,大数据           | 8-5    |
    |   20 |     2 | 研发部,人事部           | 2-1    |
    |   30 |     2 | 技术部,bigdata2018     | 7-6    |
    +------+-------+-----------------------+--------+
    5 rows in set (0.00 sec)
    

    还记的上面描述中所说的“如果没有非空值,则返回空值。”吗?deptno为9和10的数据 nums字段为NULL,也就是为空值,换句话说就是没有非空的值,则最终返回的结果为NULL值。在对比一下deptno为1~8的数据,应该就能明白了。

    展开全文
  • MySQL中,实现字符串拼接主要有以下3种函数: concat(x,y,…) concat_ws(分隔符,x,y,…) group_concat(distinct xxx order by asd/desc yyy separator ‘分隔符’) 一、concat函数 concat()函数用于将多个字符串...
  • 文章目录测试数据1、CONCAT(直接拼接函数)2、CONCAT_WS(使用指定的分割符去拼接字符串)3、GROUP_CONCAT(将查询的数据先行直接连接,然后将列通过指定的分割符拼接) 测试数据 SELECT id,login_name,real_name ...
  • MYSql-字符串拼接

    万次阅读 2018-10-25 15:54:21
    一、MySQL自带字符串拼接函数 CONCAT 字符串拼接 CONCAT_WS 指定字符串分割拼接字符串拼接 ① 语法:CONCAT(str1,str2…)   解释:concat 拼接 str1和str2字符串, 省略号....代表可以多个字符串拼接 示例: ...
  • MySQL中字符串拼接函数详解

    万次阅读 2015-08-05 18:48:20
    CONCAT函数 ...函数形式:CONCAT(str1,str2,…)示例1:单个字符串连接mysql> select concat('Hello'); +-----------------+ | concat('Hello') | +-----------------+ | Hello | +-----------------
  • CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一。 SELECT concat('2019-12-1',' ',date_format(transaction_time, '%H:%i:%S'))
  • MySQL--字符串处理函数concat、concat_ws与神奇字符串函数group_concat1、concat与concat_ws语法2、group_concat语法3、创建表格4、题目部分5、文末彩蛋--轻松一刻      更多关于数据库...
  • mysql concat()函数MySQL的concat函数可以连接一个或者多个字符串,如selectconcat('10');输出10selectconcat('11','22','33');输出112233而Oracle的concat函数只能连接两个字符串select concat('11','22') from dual...
  • 字符串拼接CONCAT SELECT CONCAT("姓名:",NAME,"年龄:",age...字符串拼接函数GROUP_CONCAT (可以选择分割符,排序操作) SELECT GROUP_CONCAT(NAME ORDER BY ID SEPARATOR '|') as NAME FROM area GROUP BY pI...
  • Mysql中字符串拼接

    2017-02-02 23:42:06
    在游标使用变量 int、字符串可直接使用,汉字需拼接后使用 在动态sql使用 concat函数加挂,尤其是字符型
  • mysql字符串拼接函数:concat和concat_ws

    千次阅读 2017-10-21 09:14:15
    concat函数 CONCAT(str1,str2,…) 在使用concat遇到了这样的一个问题,在更新用户收货地址id的时候: update t_user tu set user_addr_id = ( select id from t_addr ta where concat(ta.province, ta.city, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,715
精华内容 11,086
关键字:

mysql中字符串拼接函数

mysql 订阅