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
-> NULLCONCAT_WS()
does not skip empty strings. However, it does skip anyNULL
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
最新文章
- Logstash之multiline 插件
- mysql关于排序值的问题
- Action的搜索顺序(Struts2搜索Action的机制)
- 千万用户级别应用系统背后的SOA组件化容器
- 【温故而知新-Javascript】使用拖放
- svn服务配置和日常维护命令
- 【Android开发坑系列】之经常被忽略的背景图片内存泄露
- ASP.NET运行时详解 集成模式和经典模式
- Bootstrap 表格和按钮
- mysql高可用之PXC(Percona XtraDB Cluster)
- Codeforces Round #337 Vika and Segments
- 使用Apache HttpClient
- Vmware下Ubuntu无法上网的问题
- ☀【JS组织】pageA_init, pageB_init
- ORA-03113 通信通道的文件结尾(ORA-19804 ORA-16038-归档空间满的处理方法)
- Docx组件读写Word文档介绍
- Redis缓存之自定义CacheManager
- 【堆】【洛谷例题】p1090 p1334 p1177
- 页面布局之--Font Awesome+导航
- SELinux/SEAndroid 实例简述(二) TE语言规则【转】
热门文章
- 正则表达式 \w \d 的相关解读
- What is mobile platform?
- Stuts2的 ";struts.devMode"; 设置成true后,不起作用,仍需要重启tomcat
- sharepoint2010列表的分页实现迅雷样式效果
- 如何在SecureCRT中给linux上传和下载文件
- UI5 Source code map机制的细节介绍
- 2018.7.9 Android—显式Intent和隐式Intent的区别
- _default_ VirtualHost overlap on port 80, the first has precedence
- Mantle--国外程序员最常用的iOS模型&;字典转换框架
- CSU 1216异或最大值 (0-1 trie树)