SELECT  pid,

GROUP_CONCAT(field ORDER BY  coder desc)  'msg'

from   product_field

GROUP BY  pid

分组加排序

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)

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

本文转自茄子_2008博客园博客,原文链接:http://www.cnblogs.com/xd502djj/p/6093465.html,如需转载请自行联系原作者。

mysql 两个分组合并_mysql分组合并GROUP_CONCAT-阿里云开发者社区相关推荐

  1. 线上阿里云mysql慢_MySQL · 案例分析 · RDS MySQL线上实例insert慢常见原因分析-阿里云开发者社区...

    概述 insert慢是经常被问到的问题,笔者尝试在本文中对这个问题做一个分类梳理,列举的线上例子会做简化,希望对读者有所启发. 注意:因为阿里云MySQL线上实例还是以RDS 5.6为主体,本文的分析 ...

  2. 阿里 mysql中间件_MySQL中间件ProxySQL介绍 -阿里云开发者社区

    ProxySQL作为一款强大的中间件为MySQL的架构提供了有力的支持. 目前可以很好的支持 Master Slave MGR PXC等,并提供连接池.读写分离.日志记录等功能,当然还有很多其他实用功 ...

  3. android 照片拼接长图_Android拼接合并图片生成长图-阿里云开发者社区

    Android拼接合并图片生成长图 代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放. 假设根目录的Pict ...

  4. mysql的join算法_mysql的Join算法-阿里云开发者社区

    实为吾之愚见,望诸君酌之!闻过则喜,与君共勉 测试数据 CREATE TABLE `dept_emp` ( `emp_no` int(11) NOT NULL, `dept_no` char(4) N ...

  5. 阿里云mysql测试_MySQL主主测试-阿里云开发者社区

    1.在两台主机上同时安装mysql,具体安装步骤 https://www.jianshu.com/p/7145991c9533 2.两台机器上都建立用户,并赋予复制权限: master1: mysql ...

  6. 阿里云 mysql日志分析_mysql 慢日志分析-阿里云开发者社区

    启用 slow log 有两种启用方式: 1, 在my.cnf 里 通过 log-slow-queries[=file_name] 2, 在mysqld进程启动时,指定--log-slow-queri ...

  7. mysql权限create细化_mysql权限精细化分配-阿里云开发者社区

    mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为: grant 权限 on 数据库对象 to 用户 ...

  8. 查询mysql数据库表占用空间大小_查看 MySQL 数据库中每个表占用的空间大小-阿里云开发者社区...

    如果想知道MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE ...

  9. mysql providername_c#访问各数据库的providerName各驱动-阿里云开发者社区

    如果为Mysql 数据库--->providerName="MySql.Data.MySqlClient"(没装mysql dotnet 安装版的话就得在C:\WINDOWS ...

  10. mysql my.cnf key_buffer_size_mysql5.6之key_buffer_size优化设置-阿里云开发者社区

    key_buffer_size指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度.通过检查状态值Key_read_requests和Key_reads,可以知道key_buffer_siz ...

最新文章

  1. python简单编程语言_功能强大而又简单易学的编程语言Python
  2. vue 2.0 :key的作用
  3. 新基建将引发全国用电量暴涨近两成,如何应对
  4. linux——管理系统存储之设备的识别、发现、挂载
  5. python:列表生成器
  6. CSS Grid布局(1)
  7. pmw调光c语言程序,51单片机led灯渐变PWM调光(渐亮渐灭)C语言和汇编源程序
  8. pyqt界面屏幕分辨率自适应_在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
  9. 微信已经老了,头条永远年轻
  10. linux异构内存,Linux内核添加异构内存管理(HMM)将带来加速GPU的新方式,还有可能带来其他类型的机器学习硬件。...
  11. 微信小程序-携带参数的二维码条形码生成
  12. C++ select模型聊天室初版
  13. 特征选择-相关系数法F检验
  14. SegNet算法详解
  15. VMware Esxi7.0.3f集成最新网卡-v2(2022年7月版)
  16. Go语言程序开发之ARM开发环境搭建
  17. Minecraft Mod 开发:2-Hello, Minecraft Mod World!
  18. 电子烟创业大军,都去卖酒了
  19. jquery插件手风琴效果
  20. CUDA计算能力显卡对照表

热门文章

  1. 《Java-SE-第二十四章》之线程间协作
  2. 【论文】【CwMed】Byzantine-Robust Distributed Learning: Towards Optimal Statistical Rates
  3. 查看计算机的硬盘的命令,如何用CMD命令检查电脑的硬盘
  4. 母函数+例题(hdu 2079+hdu 2082)
  5. 潘鹏整理WPF(10)日历控件CalendarDatePicker
  6. 如何为 Ubuntu 扩容(添加新的硬盘空间)?
  7. IDEA配置.gitignore
  8. Find My iPhone勒索手段重现 针对美欧用户
  9. OpsAny 自动化运维管理平台
  10. CentOS 7.5上安装 GitLab 最新版CE/EE