博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Mysql group_concat的应用(把相同ID的VAL用字符'/'连接起来)
阅读量:6229 次
发布时间:2019-06-21

本文共 2448 字,大约阅读时间需要 8 分钟。

hot3.png

关于Mysql group_concat的应用

■事先准备:

CREATE TABLE TBL_GRP_CAT (

ID INT,

VAL CHAR

);

INSERT INTO TBL_GRP_CAT VALUES(1, 'a');

INSERT INTO TBL_GRP_CAT VALUES(1, 'b');

INSERT INTO TBL_GRP_CAT VALUES(1, 'c');

INSERT INTO TBL_GRP_CAT VALUES(2, 'd');

INSERT INTO TBL_GRP_CAT VALUES(2, 'e');

INSERT INTO TBL_GRP_CAT VALUES(2, 'd');

INSERT INTO TBL_GRP_CAT VALUES(2, 'f');

mysql> select * from TBL_GRP_CAT;

+------+------+

| ID   | VAL  |

+------+------+

|    1 | a    |

|    1 | b    |

|    1 | c    |

|    2 | d    |

|    2 | e    |

|    2 | d    |

|    2 | f    |

+------+------+

7 rows in set (0.00 sec)

mysql>

■语法:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

■示例

示例1:把相同ID的VAL用逗号连接起来(可以重复)

SELECT ID, group_concat(VAL) VAL FROM TBL_GRP_CAT GROUP BY ID ORDER BY ID;

mysql> SELECT ID, group_concat(VAL) VAL FROM TBL_GRP_CAT GROUP BY ID ORDER BY ID

;

+------+---------+

| ID   | VAL     |

+------+---------+

|    1 | a,b,c   |

|    2 | d,e,d,f |

+------+---------+

2 rows in set (0.00 sec)

mysql>

示例2:把相同ID的VAL用逗号连接起来(不含重复)

SELECT ID, group_concat(DISTINCT VAL) VAL FROM TBL_GRP_CAT GROUP BY ID ORDER BY ID;

mysql> SELECT ID, group_concat(DISTINCT VAL) VAL FROM TBL_GRP_CAT GROUP BY ID OR

DER BY ID;

+------+-------+

| ID   | VAL   |

+------+-------+

|    1 | a,b,c |

|    2 | d,e,f |

+------+-------+

2 rows in set (0.00 sec)

mysql>

示例3:把相同ID的VAL由大到小用逗号连接起来(可以重复)

SELECT ID, group_concat(VAL Order BY VAL DESC) VAL FROM TBL_GRP_CAT GROUP BY ID ORDER BY ID;

mysql> SELECT ID, group_concat(VAL Order BY VAL DESC) VAL FROM TBL_GRP_CAT GROU

 BY ID ORDER BY ID;

+------+---------+

| ID   | VAL     |

+------+---------+

|    1 | c,b,a   |

|    2 | f,e,d,d |

+------+---------+

2 rows in set (0.00 sec)

mysql>

示例4:把相同ID的VAL用字符'/'连接起来(可以重复)

SELECT ID, group_concat(VAL Separator '/') VAL FROM TBL_GRP_CAT GROUP BY ID ORDER BY ID;

mysql> SELECT ID, group_concat(VAL Separator '/') VAL FROM TBL_GRP_CAT GROUP BY

ID ORDER BY ID;

+------+---------+

| ID   | VAL     |

+------+---------+

|    1 | a/b/c   |

|    2 | d/e/d/f |

+------+---------+

2 rows in set (0.00 sec)

mysql>

示例5:权使用

SELECT ID, group_concat(DISTINCT VAL Order BY VAL DESC Separator '/') VAL FROM TBL_GRP_CAT GROUP BY ID ORDER BY ID;

mysql> SELECT ID, group_concat(DISTINCT VAL Order BY VAL DESC Separator '/') VAL

 FROM TBL_GRP_CAT GROUP BY ID ORDER BY ID;

+------+-------+

| ID   | VAL   |

+------+-------+

|    1 | c/b/a |

|    2 | f/e/d |

+------+-------+

2 rows in set (0.00 sec)

mysql>

在Oracle(Listagg),Sqlite(group_concat)等均有类似功能。

转载于:https://my.oschina.net/dubenju/blog/466564

你可能感兴趣的文章
Bitmap压缩到指定尺寸大小,获取圆角、圆形图片
查看>>
解决:模态框中使用select2下拉选项无法搜索
查看>>
LeetCode OJ:Min Stack(最小栈问题)
查看>>
什么是FPGA,PAL,EPLD?
查看>>
OO第一次博客作业
查看>>
计算机发展史简述
查看>>
wpf 遍历控件及其值
查看>>
Unity5.6.4f1 配置WebGL教程
查看>>
linux -硬盘分区
查看>>
Struts1防止重复提交
查看>>
JS控制滚动条的位置
查看>>
来自我的破船大大的博客,记录他的iOS成长之路,与君同勉!
查看>>
GridView 编辑、删除 、分页
查看>>
[洛谷P2742]【模板】二维凸包([USACO5.1]圈奶牛Fencing the Cows)
查看>>
C/C++动态二维数组的内存分配和释放
查看>>
HTC G7 官方ROM卡刷包(国行、台版、港版、印度、亚太版、欧版)
查看>>
jQuery笔记(五)jQuery表单验证
查看>>
编程助手JavaScript学习库-面向对象编程笔记
查看>>
聪明的数据结构和笨拙的逻辑代码
查看>>
php_memcache 缓存 下载-安装-配置-学习
查看>>