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

最新文章

  1. Logstash之multiline 插件
  2. mysql关于排序值的问题
  3. Action的搜索顺序(Struts2搜索Action的机制)
  4. 千万用户级别应用系统背后的SOA组件化容器
  5. 【温故而知新-Javascript】使用拖放
  6. svn服务配置和日常维护命令
  7. 【Android开发坑系列】之经常被忽略的背景图片内存泄露
  8. ASP.NET运行时详解 集成模式和经典模式
  9. Bootstrap 表格和按钮
  10. mysql高可用之PXC(Percona XtraDB Cluster)
  11. Codeforces Round #337 Vika and Segments
  12. 使用Apache HttpClient
  13. Vmware下Ubuntu无法上网的问题
  14. ☀【JS组织】pageA_init, pageB_init
  15. ORA-03113 通信通道的文件结尾(ORA-19804 ORA-16038-归档空间满的处理方法)
  16. Docx组件读写Word文档介绍
  17. Redis缓存之自定义CacheManager
  18. 【堆】【洛谷例题】p1090 p1334 p1177
  19. 页面布局之--Font Awesome+导航
  20. SELinux/SEAndroid 实例简述(二) TE语言规则【转】

热门文章

  1. 正则表达式 \w \d 的相关解读
  2. What is mobile platform?
  3. Stuts2的 "struts.devMode" 设置成true后,不起作用,仍需要重启tomcat
  4. sharepoint2010列表的分页实现迅雷样式效果
  5. 如何在SecureCRT中给linux上传和下载文件
  6. UI5 Source code map机制的细节介绍
  7. 2018.7.9 Android—显式Intent和隐式Intent的区别
  8. _default_ VirtualHost overlap on port 80, the first has precedence
  9. Mantle--国外程序员最常用的iOS模型&字典转换框架
  10. CSU 1216异或最大值 (0-1 trie树)