当前位置:   article > 正文

mysql的行列拼接函数介绍_mysql 拼接

mysql 拼接

首先我们对下面这三个函数做个简要说明。

CONCAT:对表中一行数据的多列进行整合拼接输出。

CONCAT_WS:对表中一行数据的多列进行整合拼接输出后进行字符串分割。

GROUP_CONCAT:对表中多行数据的某列进行整合拼接数据。

接下来用一个实例对大家进行具体讲解:

表结构:

我们新建了一张用户表,里面有一些常用字段。

接下来我们为表中添加一些数据:

CONCAT

1:首先我们用CONCAT函数将每一行数据的名字,年龄,address,email进行多列合并,代码如下:

select id, name, CONCAT(name,age,address,email) new_column from user

效果如下:

可以看到,我们将name,age,address,email四个字段进行拼接并用别名new_column进行展示。

到这里有多人会说,显示出来后的数据格式好难看啊,难道不能每个字段用特殊符号(例如-)进行分割吗?

CONCAT_WS

答案是肯定的,接下来为大家带来一个CONCAT的进阶函数,CONCAT_WS,这个函数可以在拼接的同时进行字符串切割,表达式为CONCAT_WS(separator,str1,str2,...),它的第一个参数接收的为一个分割拼接字符串的分隔符,sql如下:

select id, name, CONCAT_WS('---',name,age,address,email) new_column from user

效果图如下:

以上我们介绍使用了CONCAT,CONCAT_WS,那么GROUP_CONCAT怎么使用呢?我们接着讲。

GROUP_CONCAT

接下来我们需要对所有用户的姓名进行拼接,如何实现?看sql:

select GROUP_CONCAT(name) names, GROUP_CONCAT(age) ages from user 

效果图如下:

GROUP_CONCAT函数默认会以“,”对拼接的字符串进行分割。

那么不想用“,”怎么办?这里很多同学就要说了,像CONCAT_WS函数一样嘛,第一个参数加想要的分隔符就好了,那让我们看下到底行不行?

select GROUP_CONCAT('---',name) names, GROUP_CONCAT('+++',age) ages from user 

结果呢?

结果就有点差强人意了啊,直接在“,”的基础上做了二次分割,肯定是不达预期的,那么究竟如何做呢?看下面sql:

select GROUP_CONCAT(name separator '---') names, GROUP_CONCAT(age separator '+++') ages from user 

正确结果显示:

现在我们已经做了列的拼接分割处理,那么如果我想将年龄一样的把他们名字拼接起来怎么做呢?看sql:

select GROUP_CONCAT(name separator '-') names, age from user group by age

结果展示:

那有人还要问了,只能拼一个字段吗?答案肯定是否定的,只需要在GROUP_CONCAT函数内部再加想要拼的字段就行,sql来:

select GROUP_CONCAT(name, age separator '-----') names, age from user group by age

效果图:

两个字段之间没有任何分隔符,看着很难受吧?我们直接在name和age中间直接添加分隔符就

行,sql与效果如下:

select GROUP_CONCAT(name, ',', age separator '-----') names, age from user group by age;

当然大家可以替换自己想要的分隔符。

好了,本期sql讲解到此结束,欢迎大家下期再来!(点赞加收藏,明天发大财)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/1012176
推荐阅读
相关标签
  

闽ICP备14008679号