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

MySQL CONCAT()与GROUP_CONCAT()的使用的更多相关文章

  1. mysql concat和group_concat

    mysql concat(str1,str2...)连接两个字符串,(数字也是可以的,会转成字符串) MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL mys ...

  2. mysql中的concat,concat_ws(),group_concat()

    mysql中的concat,concat_ws(),group_concat() 说明: 本文中使用的例子均在下面的数据库表tt2下执行:     一.concat()函数 1.功能:将多个字符串连接 ...

  3. mysql 多行(GROUP_CONCAT)和多列(CONCAT)的合并函数

    1,多行合并:把查询的一行或者多行进行合并. SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskey=cc.id ...

  4. 浅析MySQL中concat以及group_concat的使用

      说明: 本文中使用的例子均在下面的数据库表tt2下执行: 一.concat()函数 1.功能:将多个字符串连接成一个字符串. 2.语法:concat(str1, str2,...) 返回结果为连接 ...

  5. [转]MySQL中函数CONCAT及GROUP_CONCAT

    一.CONCAT()函数 CONCAT()函数用于将多个字符串连接成一个字符串. 使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为 +-- ...

  6. Mysql学习笔记—concat以及group_concat的用法(转载)

    本文中使用的例子均在下面的数据库表tt2下执行: 一.concat()函数 1.功能:将多个字符串连接成一个字符串. 2.语法:concat(str1, str2,...) 返回结果为连接参数产生的字 ...

  7. mysql函数concat与group_concat使用说明

    mysql函数concat与group_concat使用说明concat()函数<pre>mysql> select concat(',',name,',') from `user` ...

  8. ThinkPHP第十一天(关联模型使用,独立分组配置,MySQL concat用法)

    1.关联模型的使用 定义方式:新建一个类文件UserRelationModel.class.php Class UserRelationModel extends RelationModel{ pro ...

  9. 连接列值 mysql CONCAT函数

    mysql concat(str1,str2,...) 返回结果为连接参数产生的字符串,如果任何一个参数带有null,则返回结果为null.如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如 ...

随机推荐

  1. 有意思的jsonp

    <style> body{margin: 0;} ul{margin: 0;padding: 0;list-style: none;} a{color:inherit;text-decor ...

  2. Android基础Activity篇——Menu

    1.创建一个menu 在res目录右击-->new-->Drirectory,创建menu,然后右击menu-->new-->Menu resource file 创建main ...

  3. 前端怎样学习react

    这是一个很长的话题.....慢慢写

  4. Spark job执行流程消息图

    Spark job执行流程消息图 1.介绍

  5. 在C++Builder中定义事件的实现方法

    ++Builder是由Borland公司推出的一款可视化集成开发工具.C++Builder的集成开发环境(IDE)提供了一系列可视化快速应用程序开发(RAD)工具,让程序员可以很轻松地建立和管理自己的 ...

  6. 16 Javascript

    网上找网页模板: 1.HTML模板 2.BootStrap 前面内容总结 HTML 标签:块级,行内 CSS 后台管理布局 position: fixed  ---永远固定在窗口的某个位置 relat ...

  7. PHP : 封装跳转函数,实现三个页面的跳转

    具体实现:有a,b两个页面,一个跳转页面c,在a执行完后先进行c页面的提示,再跳转到b 1.文件设计: 2.c页面封装方法内容(function.php): a页面内容(a.html): a页面的后台 ...

  8. 2017.10.3 JDBC访问数据库的建立过程

    1·JDBC访问数据库,其访问流程: (1)注册驱动 (2)建立连接(Connection) (3)创建数据库操作对象用于执行SQL语句 (4)执行语句 (5)处理执行结果 (6)释放资源 2·注册驱 ...

  9. java自定义泛型 面试题:接收任意数组进行反转 泛型通配符

    不用泛型只能操作某种类型进行反转 代码如下: package com.swift.fanxing; import org.junit.Test; public class RenyiReverse { ...

  10. 解题:在下面画线的地方填任何代码,使得最终输出 'hello world',至少写五个不同思路的方案

    今天(已经好些天前了...),群里面(JS前端开发跳板6群[81501322])有个群友问了这样一个问题. 如题:在下面画线的地方填任何代码,使得最终输出 'hello world',至少写五个不同思 ...