前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 查询结果中处理字符串

MySQL 查询结果中处理字符串

作者头像
zucchiniy
发布2019-10-30 18:56:31
4.2K0
发布2019-10-30 18:56:31
举报
文章被收录于专栏:洞明学问洞明学问

CONCAT

  • 将多个结果作为字符串拼接在一起
代码语言:javascript
复制
concat(str1,str2,...)

实例:

代码语言:javascript
复制
select concat(o.user_name,o.user_number) from user o where user_id = '1'

但是如果查询过程中有一个字符串为 null 则整个结果都将是 null ,这时可以将 null 转换为 “

代码语言:javascript
复制
select concat(IFNULL(o.user_name,''),o.user_number) from user o where user_id = '1'

如果想将结果分隔,则可以使用下面的方法

代码语言:javascript
复制
select concat(o.user_name,',',o.user_number) from user o where user_id = '1'

但是这种方式显得过于难用,如果字段多了,要写很多将分隔符,这时可以用 concat_ws 进行拼接。

CONCAT_WS

  • 将多个结果拼接在一起,使用指定的分隔符
代码语言:javascript
复制
concat_ws(separator,str1,str2,...)

实例:

代码语言:javascript
复制
select concat_ws(';',o.user_name,o.user_number) from user o where user_id = '1'

这种情况下,结果中有 null 的话,也不会返回 null ,但是如果将分隔符指定为 null 则结果会全变成 null

GROUP_CONCAT

  • 将多行的字符串分组整合成一个字符串,必须配合 group 使用
代码语言:javascript
复制
group_concat([distinct] str1 [order by asc/desc] [separator])

distinct 可以排除重复值 order by 可以按升序 ( asc ) 或者降序 ( desc ) 进行排序 separator 是分隔符,默认为 ‘,’

实例:

代码语言:javascript
复制
select
    o.class_id,
    group_concat(o.student_name)
from
    student o
group by
    o.class_id

上面这个 sql 是将学生按班级进行分组,然后将学生的姓名拼装到一起

更复杂一些的例子,可以将学生的名字、学生的学科和分数进行分组查询并拼接结果

代码语言:javascript
复制
select
    o.name,
    group_concat(concat_ws('-', o.subject,o.score) order by o.id asc)
from
    student o
group by o.name;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CONCAT
  • CONCAT_WS
  • GROUP_CONCAT
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档