千家信息网

concat与group_concat函数使用流程

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本文主要给大家介绍concat与group_concat函数使用流程,其所涉及的东西,从理论知识来获悉,有很多书籍、文献可供大家参考,从现实意义角度出发,累计多年的实践经验可分享给大家。1.conca
千家信息网最后更新 2026年11月02日concat与group_concat函数使用流程

本文主要给大家介绍concat与group_concat函数使用流程,其所涉及的东西,从理论知识来获悉,有很多书籍、文献可供大家参考,从现实意义角度出发,累计多年的实践经验可分享给大家。

1.concat()函数

使用方法:concat(str1,str2,…)
返回的结果为连接参数产生的字符串,如有任何一个参数为null,则返回值为null

注意:
如果所有参数均为非二进制字符串,则结果为非二进制字符串
如果自变量中含有任一二进制字符串,则结果为二进制字符串
一个数字参数被转为与之相等的二进制字符串格式,如要避免这种情况,可使用显式类型cast

例如:

select concat(cast(int_col as char), char_col);

使用例子:
1.字段两端加上','

mysql> select concat(',',name,',') from `user`;+--------------------------+| concat(',',fdipzone,',') |+--------------------------+| ,fdipzone,               |+--------------------------+1 row in set (0.00 sec)


2.其中有一个参数为null

mysql> select concat(null,name) from `user`;+-------------------+| concat(null,name) |+-------------------+| NULL              |+-------------------+1 row in set (0.00 sec)

2.concat_ws() 函数

使用方法:concat_ws(separator,str1,str2,…)

concat_ws()函数是concat()函数的特殊形式,第一个参数是其他参数的分隔符。分隔符的位置在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其他参数。
如果分隔符为null,则结果为null。
函数会忽略任何分隔符参数后的null值,但concat_ws()不会忽略任何空字符串。

使用例子:
1.使用','分隔多个字段

mysql> select concat_ws(',',country_code,phone,region) from `user`;+------------------------------------------+| concat_ws(',',country_code,phone,region) |+------------------------------------------+| 86,13794830550,GZ                        |+------------------------------------------+1 row in set (0.00 sec)


2.分隔符为null

mysql> select concat_ws(null,country_code,phone,region) from `user`;+-------------------------------------------+| concat_ws(null,country_code,phone,region) |+-------------------------------------------+| NULL                                      |+-------------------------------------------+1 row in set (0.00 sec)


3.参数中有null与空字符串

mysql> select concat_ws(',',country_code,phone,null,region,'',grade) from `user`;+--------------------------------------------------------+| concat_ws(',',country_code,phone,null,region,'',grade) |+--------------------------------------------------------+| 86,13794830550,GZ,,200                                 |+--------------------------------------------------------+1 row in set (0.00 sec)

3.group_concat()函数

使用方法:GROUP_CONCAT([DISTINCT] expr [,expr …]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col …]]
[SEPARATOR str_val])

group_concat可以得到表达式结合体的连结值,使用distinct可以排除重复值。使用order by子句可以排序。
separator是一个字符串,用于分隔结果集中每个元素。默认是逗号,可以通过指定separator ""完全移除这个分隔符。

使用例子:

表结构

CREATE TABLE `article_in_category` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `article_id` int(11) unsigned NOT NULL, `category_id` int(11) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `article_id_INDEX` (`article_id`), KEY `category_id_INDEX` (`category_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据:

INSERT INTO `article_in_category` (`id`, `article_id`, `category_id`) VALUES (NULL, '1', '1'),(NULL, '1', '2'),(NULL, '1', '3'),(NULL, '2', '4'),(NULL, '2', '3'),(NULL, '2', '5'),(NULL, '3', '1'),(NULL, '3', '5'),(NULL, '3', '6'),(NULL, '4', '8');
mysql> select * from `article_in_category`;+----+------------+-------------+| id | article_id | category_id |+----+------------+-------------+|  1 |          1 |           1 ||  2 |          1 |           2 ||  3 |          1 |           3 ||  4 |          2 |           4 ||  5 |          2 |           3 ||  6 |          2 |           5 ||  7 |          3 |           1 ||  8 |          3 |           5 ||  9 |          3 |           6 || 10 |          4 |           8 |+----+------------+-------------+

获取文章的id及所有分类id

mysql> select article_id,group_concat(category_id order by category_id asc) from `article_in_category` group by article_id;+------------+----------------------------------------------------+| article_id | group_concat(category_id order by category_id asc) |+------------+----------------------------------------------------+|          1 | 1,2,3                                              ||          2 | 3,4,5                                              ||          3 | 1,5,6                                              ||          4 | 8                                                  |+------------+----------------------------------------------------+4 rows in set (0.00 sec)

注意:group_concat()函数对返回的结果有长度限制,默认为1024字节

查看group_concat返回值最大长度

mysql> show global variables like '%group_concat_max_len%';+----------------------+-------+| Variable_name        | Value |+----------------------+-------+| group_concat_max_len | 1024  |+----------------------+-------+

修改group_concat返回值最大长度

mysql> set global group_concat_max_len=2048;Query OK, 0 rows affected (0.03 sec)mysql> show global variables like '%group_concat_max_len%';+----------------------+-------+| Variable_name        | Value |+----------------------+-------+| group_concat_max_len | 2048  |+----------------------+-------+

以上就是关于mysql函数concat与group_concat使用说明事项的详细内容,更多请关注其它相关文章!

参数 函数 字符 字符串 分隔符 结果 二进制 使用方法 例子 方法 长度 最大 字段 文章 空字符 流程 特殊 东西 两个 两端 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 中关村互联网 科技集团 蓝思科技飞鸽互联网 互联网科技工作委员会毛军 科技互联网产品 今日互联网科技 互联网医疗科技 有马互联网科技 老年人脱离互联网科技的作文 成都玖崟互联网科技有限公司乐商圈怎么样 伍佰万互联网科技怎么赚钱 互联网企业科技类企业如何做账 互联网科技数字货币 互联网相关科技技术 半导体行业属于互联网高科技类吗 扫呗互联网科技有限公司 九思连强互联网电子科技有限公司 信承诺互联网科技有限公司 米泉互联网科技专业怎么样 互联网科技品牌 互联网最新的科技 圆梦互联网科技 百单互联网科技有限公司 银川新华互联网科技学校地址 互联网科技有哪些公司 互联网5g黑科技有哪些 佛山市拉法互联网科技有限公司 黑科技 体验场景 互联网大会 互联网金融科技公司的优势 信承诺互联网科技有限公司
0