mysql group_concat()函数用法总结

 更新时间:2016年06月24日 15:41:29   作者:wangtaotao  
这篇文章主要介绍了mysql group_concat()函数用法,结合实例形式较为详细的group_concat()函数的功能、使用方法与相关注意事项,需要的朋友可以参考下

本文实例讲述了mysql group_concat()函数用法。分享给大家供大家参考,具体如下:

group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。比较抽象,难以理解。

通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来。要返回哪些列,由函数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进行分组。

group_concat函数应该是在内部执行了group by语句,这是我的猜测。

1.测试语句:

SELECT group_concat(town) FROM `players` group by town

结果去查找town中去查找哪些值是一样的,如果相等,就全部列出来,以逗号分割进行列出,如下:

group_concat(town)

北京,北京
长沙

2.测试:

SELECT group_concat( town )
FROM players

结果:

group_concat(town)

长沙,北京,北京,

上面是否可以证明,group_concat只有与group by语句同时使用才能产生效果? 下面进行了实际测验

3.测试常量对group_concat()的配置影响:

SET @@GROUP_CONCAT_MAX_LEN=4

手册中提到设置的语法是这样的:

SET [SESSION | GLOBAL] group_concat_max_len = val;

两种有什么区别?

SET @@global.GROUP_CONCAT_MAX_LEN=4;

global可以省略,那么就变成了:SET @@GROUP_CONCAT_MAX_LEN=4;

4.使用语句

SELECT group_concat(town) FROM `players`

结果得到:
group_concat(town)

长沙,北京,长沙,北京

结论:group_concat()函数需要与group by语句在一起使用,才能得到需要的效果。

原因可以这样理解:group_concat()得到是属于x组的所有成员(函数里面列参数指定需要显示哪些字段)。x组从哪里来?如果没有group by进行指定,那么根本不知道group_concat()根据哪个分组进行显示出成员。 所以,像上面没有group by子句的时候,就显示了长沙和北京。

实际中什么时候需要用到这个函数?

假如需要查询的结果是这样:左边显示组名,右边想显示该组别下的所有成员信息。用这个函数,就可以省去很多事情了。

另外,假如我这样使用:SELECT group_concat( name, sex ) FROM `players` town。意义不大。group_concat()指定一个列是最好的情况。如果指定了多个列。那么显示结果类似这样:

group_concat(name,sex)

王滔,王小明男,刘惠女,舒明女

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》、《MySQL数据库锁相关技巧汇总》及《MySQL常用函数大汇总

希望本文所述对大家MySQL数据库计有所帮助。

相关文章

  • Windows下安装MySQL 5.7.17压缩版中遇到的坑

    Windows下安装MySQL 5.7.17压缩版中遇到的坑

    最近发现原来好端端的MySQL突然间不能用了,无奈只能重新下载了最新的MySQL 5.7.17 Community 压缩版 for Windows 64-bit。但在安装过程中遇到了一些意外的问题,通过查找相关资料也解决了,所以想着总结出来,方便需要的朋友们可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • MySQL字段类型与Java实体类类型对应转换关系详解

    MySQL字段类型与Java实体类类型对应转换关系详解

    这篇文章主要介绍了MySQL字段类型与Java实体类类型对应转换关系,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • mysql 8.0.20 winx64.zip压缩版安装配置方法图文教程

    mysql 8.0.20 winx64.zip压缩版安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 8.0.20 winx64.zip压缩版安装配置方法图文教程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Mysql连接数设置和获取的方法

    Mysql连接数设置和获取的方法

    这篇文章主要介绍了Mysql连接数设置和获取的方法,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2021-01-01
  • MySQL连接查询实例详解

    MySQL连接查询实例详解

    这篇文章主要介绍了MySQL连接查询,结合实例形式总结分析了mysql表的创建、内连接、左连接、右连接、复合条件连接查询等相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • MySQL中事务概念的简洁学习教程

    MySQL中事务概念的简洁学习教程

    这篇文章主要介绍了MySQL中的事务概念,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • step by step配置mysql复制的具体方法

    step by step配置mysql复制的具体方法

    每个服务器必须有唯一的server-id,默认为1,为了防止冲突,一般建议设置为IP地址的后几位,本例设置为12,通过修改主库的my.cnf文件实现
    2013-09-09
  • MySql创建分区的方法实例

    MySql创建分区的方法实例

    mysql分区相对于mysql分库分表便利很多,可以对现有的mysql大表添加分区,也可以对已有分区的表扩充分区,下面这篇文章主要给大家介绍了关于MySql创建分区的相关资料,需要的朋友可以参考下
    2022-04-04
  • MySQL主从搭建(多主一从)的实现思路与步骤

    MySQL主从搭建(多主一从)的实现思路与步骤

    通过MySQL主从配置,可以实现读写分离减轻数据库压力,最近正好遇到这个功能,所以这篇文章主要给大家介绍了关于MySQL主从搭建(多主一从)的实现思路与步骤,需要的朋友可以参考下
    2021-05-05
  • 详解mysql中的字符集和校验规则

    详解mysql中的字符集和校验规则

    这篇文章主要介绍了mysql中的字符集和校验规则的相关资料,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-12-12

最新评论