MySQL函数GROUP_CONCAT
该函数返回带有来自一个组的连接的非NULL值的字符串结果。该函数是一个增强的Sybase SQL Anywhere支持的基本LIST()函数。
语法结构:
GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val]) |
DISTINCT:去除重复值
expr [,expr ...]:一个或多个字段(或表达式)
ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]:根据字段或表达式进行排序,可多个
SEPARATOR str_val:分隔符(默认为英文逗号)
示例1:查询某分类的所有子分类并用逗号连接子分类ID
mysql>SELECT GROUP_CONCAT(cat_id) FROM goods_cat WHERE pid = 25+-----------------------------+| GROUP_CONCAT(cat_id) |+-----------------------------+| 26,111,130,206,239,322,323 |+-----------------------------+ |
示例2:查询某分类的所有子分类并用分号连接子分类ID
mysql>SELECT GROUP_CONCAT(cat_id SEPARATOR ';') FROM goods_cat WHERE pid = 25+-------------------------------------+| GROUP_CONCAT(cat_id SEPARATOR ';') |+-------------------------------------+| 26;111;130;206;239;322;323 |+-------------------------------------+ |
示例3:查询某分类的所有子分类,根据p_order ASC, cat_id DESC排序后再连接
mysql>SELECT GROUP_CONCAT(cat_id ORDER BY p_order ASC, cat_id DESC) FROM goods_cat WHERE pid = 25+----------------------------------------------------------+| GROUP_CONCAT(cat_id ORDER BY p_order ASC, cat_id DESC) |+----------------------------------------------------------+| 332,331,242,212,133,112,29,26,333,330,327,244,138,116 |+----------------------------------------------------------+ |
示例4:结合GROUP BY查询
mysql>SELECT pid, GROUP_CONCAT(cat_id) FROM goods_cat GROUP BY pid+-----------+-------------------------------------+| parent_id | GROUP_CONCAT(cat_id) |+-----------+-------------------------------------+| 22 | 35,166,191,209,233,252,256,257,258 || 25 | 26,111,130,206,239,322,323 || 26 | 29,51,65,66,70,75,238 || 323 | 332,333,334,335,336,337,338,339 |+-----------+-------------------------------------+ |
注意:
1. 最大长度(字符)限制
系统变量:group_concat_max_len
SET [SESSION | GLOBAL] group_concat_max_len = val; |
val必须是无符号整数
用了GROUP_CONCAT函数,SELECT语句中的LIMIT语句起不了任何作用。
2. INT类型陷阱
连接的字段为INT类型时,低版本或出现返回的结果不是逗号分隔的字符串,而是byte[]。
此时,需要用CAST或CONVERT函数进行转换。
MySQL函数GROUP_CONCAT的更多相关文章
- oracle 函数 WMSYS.WM_CONCAT 与对应 mysql 函数GROUP_CONCAT的用法
1.oracle函数 WMSYS.WM_CONCAT的使用 如图,将图1的结果变成图2的结果,使用函数 WMSYS.WM_CONCAT 即可. 查询语句需要配合使用group by select aa ...
- mysql 函数GROUP_CONCAT(temp.amount SEPARATOR ',')的用法
mysql 函数GROUP_CONCAT(temp.amount SEPARATOR ',')的用法 使用场景:例如:想要查询用户的最喜欢购买的几种商品,这个时候就需要使用group_concat(字 ...
- mysql 函数group_concat()
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) .MySQL中group_concat函数完整的语法如下:group_c ...
- 关于mysql函数GROUP_CONCAT
GROUP_CONCAT()是MySQL数据库提供的一个函数,通常跟GROUP BY一起用,具体可参考MySQL官方文挡:http://dev.mysql.com/doc/refman/5.0/en/ ...
- 【转】关于MySQL函数GROUP_CONCAT的使用
GROUP_CONCAT()是MySQL数据库提供的一个函数,通常跟GROUP BY一起用,具体可参考MySQL官方文挡:http://dev.mysql.com/doc/refman/5.0/en/ ...
- 使用mysql函数 group_concat 一点需要注意的
这个函数是一个非常好用的函数,比如我们可以在 进行多对多关联表,进行批量查询的时候可以用到, 比如学生和老师是多对多的关系,如果我们希望查询 指定的一些老师对应的学生有哪些 的时候,一般的情况,我们可 ...
- mysql 函数 GROUP_CONCAT 单元格中最长字符串和excel导出问题
GROUP_CONCAT 使用方式GROUP_CONCAT ([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) SELECT ...
- MySQL函数GROUP_CONCAT() 实现多条数据合并
group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来,group by指定的列进行分组. 例如: -- 根据物流订单id查询所有物流订单,车源订单,车辆信息(多条数据合并为一条 ...
- mysql中group_concat函数用法
该函数返回带有来自一个组的连接的非NULL值的字符串结果.该函数是一个增强的Sybase SQL Anywhere支持的基本LIST()函数. 语法结构: GROUP_CONCAT([DISTINCT ...
随机推荐
- Centos7下用户登录失败N次后锁定用户禁止登陆的方法
前言 针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁.Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值 ...
- JavaScript模块化思想requireJS的使用
1. 使用require.js的意义 (1)实现JS文件的异步加载,避免网页因为加载JS文件缓慢造成网页未响应 (2)管理模块之间的依赖性,便于代码的编写和维护.页面中只需要引入require.j ...
- Csharp—碎片知识积累
1.获取应用程序的工作目录 2.将两个字符串组成一个新的路径: 3.MessageBox使用(弹出一个消息框)(第一个参数是消息内容,第二个参数是消息标题,第三个参数是按钮设置,第四个参数是消息内容前 ...
- PHP中静态变量和函数引用返回
这两天看看PHP写的框架CI,源代码中写了很多静态变量和函数引用. 官方文档地址:http://php.net/manual/zh/language.references.return.php 简单写 ...
- 设计模式(5)原型模式(Prototype)
设计模式(0)简单工厂模式 设计模式(1)单例模式(Singleton) 设计模式(2)工厂方法模式(Factory Method) 设计模式(3)抽象工厂模式(Abstract Factory) 设 ...
- IDEA的Maxcomputer Studio开发
一.安装 在IDEA中File > Settings > Plugins中Browse repositories搜索安装即可:MaxCompute Studio 二.开发UDF.UDAF. ...
- jenkins自动部署应用到tomcat中,编译后shell脚本的简单示例
jenkins的安装这里就不做描述了,很简单的 百度搜索一下即可 这里安装的jenkins-2.39-1.1 wget http://pkg.jenkins-ci.org/redhat/jenkin ...
- 开源后的.Net 如何选择使用
.NET是跨平台的开发栈.它有一个标准库,称为.NET Standard Library,其中包含了大量的APIs.这个标准库由各种.NET运行环境实现:.NET Framework..NET Co ...
- 腾讯内推一面C++
北邮论坛找个腾讯的内推,没想到那么快就安排面试了.第一次面腾讯,写点东西记录一下吧. 面的是位置服务部门. 去了之后HR先给了两张纸,有三道编程题.第一道是求 二进制中1的个数(考察位运算)(剑指of ...
- H5 40-CSS精灵图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...