mysql中CONCAT() , CONCAT_WS () ,GROUP_CONCAT()拼接字段的三个函数

本文介绍了MySQL中用于字段拼接的三个函数:CONCAT()、CONCAT_WS() 和 GROUP_CONCAT()。通过示例详细解释了它们的使用方法和区别,包括如何处理空值。CONCAT() 函数当遇到空值时结果也为 null,而 CONCAT_WS() 会忽略空值,GROUP_CONCAT() 则常用于按指定字段分组时的拼接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       带大家认识下数据库中合并字段的函数,CONCAT()     CONCAT_WS ()   GROUP_CONCAT()函数,希望对大家的工作有些许帮助!

先创建个练习表,    INFROMATION

CREATE TABLE `INFORMATION` (
`ID` VARCHAR ( 255 ) NOT NULL COMMENT '主键',
`NAME` VARCHAR ( 255 ) DEFAULT NULL COMMENT '姓名',
`HOBBY` VARCHAR ( 500 ) DEFAULT NULL COMMENT '爱好',
`FLAG` INT ( 11 ) DEFAULT NULL COMMENT '有效标志',
PRIMARY KEY ( `ID` ) 
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '资料';

插入测试数据

INSERT INTO INFORMATION VALUES('25dwasvdascwdf8','张三','篮球',1);
INSERT INTO INFORMATION VALUES('7fawavawdgsd444','张三','乒乓球',1);
INSERT INTO INFORMATION VALUES('czbfwad8sffwdqa','李四','瑜伽',1);
INSERT INTO INFORMATION VALUES('vgyadsawadwad51','李四','王者荣耀',1);
INSERT INTO INFORMATION VALUES('wttaascawag5555','李四','看电影',1);
INSERT INTO INFORMATION VALUES('csadwafsadacwad','王五','跑步',1);
INSERT INTO INFORMATION VALUES('dwascfwawafssda','王五','看书',1);

INSERT INTO INFORMATION VALUES('dawdascwadwaff','测试',null,null);

插入完后的结果(给不方便操作数据库的人观看) :

一、如何合并一条数据中的多个字段,并用自定义的符号分隔,并且有一条涉及字段值为空时,结果就为空。

数据库中有个concat函数,这个函数就是用来合并一条数据中两个不同字段的值,可以通过自定义的符号去分隔,下面是例子

SELECT CONCAT(NAME,":",HOBBY) FROM INFORMATION

这条sql的意思就是把NAME字段和自定义的“:”和HOBBY连接起来,函数中的字符根据顺序连接。

注意:该函数中的表字段如果有一个为null,则得出来的结果就为null,CONCAT_WS()函数则不是,下面会讲解到。工作时,根据实际业务选择对应函数。

这是执行后的结果:

二、如何合并一条数据中的多个字段,并用自定义的符号分隔,并且有一条涉及字段值为空时,结果只是筛除掉为空的数据,不影响其他合并字段。

接下来就要说到concat_ws函数,这个函数就是用来合并一条数据中两个不同字段的值,可以通过自定义的符号去分隔,下面是例子

SELECT CONCAT_WS(":",NAME,HOBBY) AS INFO FROM INFORMATION 

这条sql的意思就是把NAME字段以自定义的“:”分隔符连接HOBBY,函数中的字符根据顺序连接,但是自定义分隔符必须放到第一个位置。

注意:该函数中的表字段中有为null的数据,则自动筛选掉,只保留不为空的数据,不影响其他字符连接操作。

这是执行后的结果:

三、如何合并多条数据中相同的字段。

最后要说的是group_concat函数,这个函数一般用在通过指定字符串分组的时候,下面是例子

SELECT GROUP_CONCAT(NAME,":",HOBBY) AS INFO FROM INFORMATION GROUP BY NAME

这条sql的意思就是把NAME字段以自定义的“:”分隔符连接HOBBY,函数中的字符根据顺序连接,但是自定义分隔符必须放到第一个位置。

注意:该函数中的只能用自带的“,”号分隔符,函数中的都是需要拼接的字段,该函数跟CONCAT函数有个相同点,就是只有拼接字段中有为null的数据,则全为null。

这是执行后的结果:

 这几个函数,在工作中通常都会用到,接下来会写一篇关于如何将一条数据分隔为多条数据的功能!

以上皆为个人理解,如果哪里有不对的地方,烦请下面留言!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值