MySQL的GROUP_CONCAT函数
先根据如下语句生成测试表并填充数据
CREATE TABLE z ( a INT, b INT);
INSERT INTO Z SELECT 1,200;
INSERT INTO Z SELECT 1,100;
INSERT INTO Z SELECT 1,100;
INSERT INTO Z SELECT 2,400;
INSERT INTO Z SELECT 2,500;
INSERT INTO Z SELECT 3,NULL;
SELECT a, GROUP_CONCAT(b)
FROM z
GROUP BY a;
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
DISTINCT选项可以去除重复值,ORDER选择可以对列进行排序,SEPARATOR用于选择拼接的字符串。例如上述例子中,可以对b列进行去重并按递减的顺序排序,同时用“:”拼接字符串。其SQL语句可写为:
SELECT a,GROUP_CONCAT(DISTINCT b ORDER BY b DESC SEPARATOR ':')
FROM z
GROUP BY a;
运行结果如下图
aaarticlea/png;base64,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" alt="" />
MySQL的GROUP_CONCAT函数的更多相关文章
- MySQL中group_concat函数-和group by配合使用
MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔 ...
- MySQL中group_concat函数深入理解
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . 一.MySQL中group_concat函数 完整的语法如下: gr ...
- MySQL中group_concat函数
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) .MySQL中group_concat函数完整的语法如下:group_c ...
- mysql之group_concat函数
mysql之group_concat函数 在介绍GROUP_CONCAT之前,我们先来看看concat()函数和concat_ws()函数. 先准备一个测试数据库: mysql> select ...
- 【转】mysql的group_concat函数,默认最大长度是1024
mysql的group_concat函数,默认最大长度是1024 查询sql: show variables like 'group_concat_max_len'; 设置方式: 修改配置文件my.i ...
- MySQL中group_concat函数 --- 很有用的一个用来查询出所有group by 分组后所有 同组内的 内容
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: grou ...
- mysql中group_concat函数用法
该函数返回带有来自一个组的连接的非NULL值的字符串结果.该函数是一个增强的Sybase SQL Anywhere支持的基本LIST()函数. 语法结构: GROUP_CONCAT([DISTINCT ...
- 利用MySQL 的GROUP_CONCAT函数实现聚合乘法
MySQL 聚合函数里面提供了加,平均数.最小,最大等,可是没有提供乘法,我们这里来利用MYSQL现有的GROUP_CONCAT函数实现聚合乘法. 先创建一张演示样例表: CREATE TABLE ` ...
- MYSQL中group_concat( )函数中参数的排序方法
使用mysql中的group_concat( )函数连接指定字段时,可以先对该字段进行排序. PS:是因为二刷mysql的51道题的第12题遇到的:查询和" 01 "号同学学习的课 ...
- 关于Mysql中GROUP_CONCAT函数返回值长度的坑
1.GROUP_CONCAT函数: 功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果. 语法:group_concat( [distinct] 要连接的字段 [order b ...
随机推荐
- PEM证书加密方法(python)
1. 常见网络登录现在都使用了rsa加密,一般而言客户会提供模(mo)和指数(e). 2. 通过模和指数获取到证书PEM(方法见:https://www.cnblogs.com/luo30zhao/p ...
- 微信小程序的自定义插件
第一步,创建一个页面和普通页面一样 第二不,在这个页面上进行对json配置, "component":true 第三不在需要插入的页面中进行设置 插入标签 <dialog i ...
- PAT DFS,BFS,Dijkstra 题号
为什么要分类刷题: 因为刷⼀道算法题需要花⼀两个⼩时甚⾄半天,平时我们还要上课做别的事情,你在⼀段时间内刷算法如果只按照顺序,可能今天遇到了⼀道最短路径的题⽬,弄了半天好不容易看懂了别⼈的代码,以为⾃ ...
- JavaScript基础视频教程总结(101-110章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Python if __name__ == '__main__':
python属于脚本语言,只能逐行运行, if __name__ == '__main__':这句相当于main(),即首先执行这条语句.
- python中的三种输入方式
python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...
- Shell输入和输出功能-3
- jquery validate 校验使用总结
一.jquery.validator表单验证id和name问题 因为后台是struts,表单提交,所有输入框的值保存在name=对象.名字中,而jquery.validator表单验证用的是name, ...
- #221 Iterate Through an Array with a For Loop
迭代输出一个数组的每个元素是 JavaScript 中的常见需求, for 循环可以做到这一点. 下面的代码将输出数组 arr 的每个元素到控制台: var arr = [10,9,8,7,6];fo ...
- Android-MySQLiteOpenHelper的理解
MySQLiteOpenHelper: package com.esandinfo; import android.content.Context; import android.database.s ...