zoukankan      html  css  js  c++  java
  • MySQL中concat函数(连接字符串)

    MySQL中concat函数

    使用方法:
    concat(str1,str2,…)  

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

    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函数

    使用方法: 
    contcat_ws(separator,str1,str2,...)

    contcat_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)

     

    MySQL中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)

  • 相关阅读:
    phpcms后台进入地址(包含No permission resources错误)
    phpmyadmin上传大sql文件办法
    ubuntu彻底卸载mysql
    Hdoj 2602.Bone Collector 题解
    一篇看懂词向量
    Hdoj 1905.Pseudoprime numbers 题解
    The Python Challenge 谜题全解(持续更新)
    Hdoj 2289.Cup 题解
    Hdoj 2899.Strange fuction 题解
    Hdoj 2199.Can you solve this equation? 题解
  • 原文地址:https://www.cnblogs.com/yingmo/p/6148360.html
Copyright © 2011-2022 走看看