给运营导出数据时,难免需要对字段进行拼接,如果 Mysql 可以完成的话,就可以少些很多代码。
Mysql 确实有几个函数可以对字段进行拼接。
concat()
将多个字段使用空字符串拼接为一个字段
1 | mysql> select concat(id, type) from mm_content limit 10; |
不过如果有字段值为 NULL,则结果为 NULL。
1 | mysql> select concat(id, type, tags) from mm_content limit 10; |
concat_ws()
上面这种方式如果想要使用分隔符分割,就需要每个字段中间插一个字符串,非常麻烦。
concat_ws()
可以一次性的解决分隔符的问题,并且不会因为某个值为 NUll,而全部为 NUll。
1 | mysql> select concat_ws(' ', id, type, tags) from mm_content limit 10; |
group_concat()
最后一个厉害了,正常情况下一个语句写成这样一定会报错的。
1 | mysql> select id from test_user group by age; |
但是 group_concat()
可以将分组状态下的其他字段拼接成字符串查询出来
1 | mysql> select group_concat(name) from test_user group by age; |
默认使用逗号分隔,我们也可以指定分隔符
1 | mysql> select group_concat(name separator ' ') from test_user group by age; |
将字符串按照某个顺序排列
1 | mysql> select group_concat(name order by id desc separator ' ') from test_user group by age; |
如果想要拼接多个字段,默认是用空字符串进行拼接的,我们可以利用 concat_ws()
方法嵌套一层
1 | mysql> select group_concat(concat_ws(',', id, name) separator ' ') from test_user group by age; |
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章