MySQL 函数 —— GROUP_CONCAT
文章目录
GROUP_CONCAT
函数返回带有来自一个组的连接的非 NULL 值的字符串结果。该函数是一个增强的 Sybase SQL Anywhere 支持的基本 LIST() 函数。
语法结构
|
|
DISTINCT
:去除重复值
expr [,expr ...]
:一个或多个字段(或表达式)
ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]
:根据字段或表达式进行排序,可多个
SEPARATOR str_val
:分隔符(默认为英文逗号)
应用实例
查询某分类的所有子分类并用逗号连接子分类 ID
|
|
查询某分类的所有子分类并用分号连接子分类 ID
|
|
查询某分类的所有子分类,根据 p_order ASC, cat_id DESC 排序后再连接
|
|
结合 GROUP BY 查询
|
|
注意:
最大长度(字符)限制
系统变量:group_concat_max_len
|
|
val 必须是无符号整数
用了 GROUP_CONCAT
函数,SELECT
语句中的 LIMIT
语句起不了任何作用。
INT 类型陷阱
连接的字段为 INT
类型时,低版本或出现返回的结果不是逗号分隔的字符串,而是 byte[]
。
此时,需要用 CAST
或 CONVERT
函数进行转换。
文章作者 Jioby
发布日期 2015-05-11
上次更新 2018-06-08
许可协议 CC BY-NC-ND 4.0(请看转载要求)
原文链接 https://shockerli.net/post/mysql-function-group_concat/