zoukankan      html  css  js  c++  java
  • MySQL CONCAT()与GROUP_CONCAT()的使用

     

    1 . MySQL CONCAT(str1,str2, ...) 

    --返回连接的字符串

    mysql> SELECT CONCAT('My', 'S', 'QL');
            -> 'MySQL'
    mysql> SELECT CONCAT('My', NULL, 'QL'); --若有一个为null,结果为null
            -> NULL
    mysql> SELECT CONCAT(14.3);
            -> '14.3'
    mysql> SELECT 'My' 'S' 'QL'; --相邻字符会相连接
    -> 'MySQL'
     
    2 . MySQL CONCAT_WS(separater,str1,str2, ...)

     

    concat_wr()是用分隔符连接的特殊的concat(),第一个参数是分隔符,将其余的参数分隔。

    • mysql> SELECT CONCAT_WS('--','First name','Second name','Last Name');
              -> 'First name--Second name--Last Name'
      mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name'); --连接的遇到null,直接忽略 -> 'First name,Last Name'
      mysql> SELECT CONCAT_WS(NULL, 'First name',NULL,'Last Name'); --分隔符为null,结果为null 
      -> NULL

      CONCAT_WS() does not skip empty strings. However, it does skip any NULL values after the separator argument.

     

     

    MySQL GROUP_CONCAT()

    1. MySQL GROUP_CONCAT()
    mysql> SELECT pub_id,GROUP_CONCAT(cate_id)
    -> FROM book_mast
    -> GROUP BY pub_id;

    返回结果:(默认逗号分隔) 

    +--------+-----------------------+
    | pub_id | GROUP_CONCAT(cate_id) |
    +--------+-----------------------+
    | P001 | CA002,CA004 |
    | P002 | CA003,CA003 |
    | P003 | CA001,CA003 |
    | P004 | CA005,CA002 |
    | P005 | CA001,CA004 |
    | P006 | CA005,CA001 |
    | P007 | CA005,CA002 |
    | P008 | CA005,CA004 |
    +--------+-----------------------+

    2.MySQL GROUP_CONCAT() with order by and distinct
    语句:(DISTINCT:消重,看结果的第四行CA003,只有一个。ASC:升序)
    mysql> SELECT pub_id,GROUP_CONCAT(DISTINCT cate_id) -> FROM book_mast -> GROUP BY pub_id -> ORDER BY GROUP_CONCAT(DISTINCT cate_id) ASC;


    返回结果:
    +--------+--------------------------------+
    | pub_id | GROUP_CONCAT(DISTINCT cate_id) |
    +--------+--------------------------------+
    | P003 | CA001,CA003 |
    | P005 | CA001,CA004 |
    | P001 | CA002,CA004 |
    | P002 | CA003 |
    | P006 | CA005,CA001 |
    | P004 | CA005,CA002 |
    | P007 | CA005,CA002 |
    | P008 | CA005,CA004 |
    +--------+--------------------------------

    3. MySQL GROUP_CONCAT() with separator
    语句:
    mysql> SELECT pub_id,GROUP_CONCAT(DISTINCT cate_id
    -> ORDER BY cate_id ASC SEPARATOR ' ') --去除逗号
    -> FROM book_mast
    -> GROUP BY pub_id ;


    +--------+----------------
    返回结果:
    +--------+--------------------------------------------------------------------+
    | pub_id | GROUP_CONCAT(DISTINCT cate_id ORDER BY cate_id ASC SEPARATOR ' ') |
    +--------+--------------------------------------------------------------------+
    | P001 | CA002 CA004 |
    | P002 | CA003 |
    | P003 | CA001 CA003 |
    | P004 | CA002 CA005 |
    | P005 | CA001 CA004 |
    | P006 | CA001 CA005 |
    | P007 | CA002 CA005 |
    | P008 | CA004 CA005 |
    +--------+--------------------------------------------------------------------+

     

    参考文章:http://www.w3resource.com/mysql/aggregate-functions-and-grouping/aggregate-functions-and-grouping-group_concat.php#

                   https://dev.mysql.com/doc/refman/5.7/en/string-functions.html

  • 相关阅读:
    IOS笔记-C语言中的字符串数组 指针
    IOS笔记-C语言中的指针与数组
    Entity Framework 知识点总结
    提升代码内外部质量的22条经验(转载)
    WPF 第一个创建的窗体会作为Application.Current.MainWindow
    重构的十个小技巧(转)
    WPF DataGrid自定义分页控件_实现下拉刷新数据
    使用qt生成安卓android运用
    关于开发省流量手机游戏的一些建议
    c++ com 在c#项目里面使用简单例子
  • 原文地址:https://www.cnblogs.com/xiexiaoxiao/p/6813316.html
Copyright © 2011-2022 走看看