zoukankan      html  css  js  c++  java
  • MySQL字段拼接

    MySQL字段拼接

    部分引用:原文地址

    1.concat()函数字段拼接

    用法:

    concat(str1,str2,...)
    栗子:
    select concat(s_id,s_name,s_sex) from student where s_id = '01' or s_id = '02'

    tip:

    如果有一个拼接的字符串为null,那么返回的结果就是null,所以我们通常配合IFNULL使用

    select concat(sc.s_id,ifnull(sc.s_score,''),sc.c_id) from score sc
    解释为:如果sc.s_score为null,返回就是sc.c_id。

    2. concat_ws函数

    concat_ws(separator,str1,str2,...)
    栗子:
    select
    CONCAT_WS(':',sc1.c_id,sc2.c_id,sc3.c_id) from student st
    LEFT JOIN score sc1 on sc1.s_id = st.s_id and sc1.c_id = '01'
    LEFT JOIN score sc2 on sc2.s_id = st.s_id and sc2.c_id = '02'
    LEFT JOIN score sc3 on sc3.s_id = st.s_id and sc3.c_id = '03' where st.s_id = '01'

    解释:separator是分隔符

    详解: 分隔符可以是一个字符串,也可以是其它参数。

    1)分隔符为NULL,则返回结果为NULL: mysql> select concat_ws(NULL,‘1’,‘2’,‘3’) from test; 结果为:NULL

    2)如果参数中存在NULL,则会被忽略: select concat_ws(’:’,‘1’,‘2’,NULL,NULL,NULL,‘3’) from test ; 结果为: 1:2:3

    3)可以对NULL进行判断,并用其它值进行替换: select concat_ws(’:’,‘1’,‘2’,ifNULL(NULL,‘0’),‘3’) from bank limit 1; 结果为:1:2:0:3

    这里是把为null替换为0

    3.group_concat函数

    作用: 将多行的字符串按分组整合成一个字符串,必须配合group使用

    用法:
    GROUP_CONCAT(name separator ';')
     解释为:
     name是你的字段;
     separator是你的关键字;
     ';'是你的分隔符号
     最终目的是把一个字段查询出来的所有的值(你需要筛选这些值,因为可能你会连接你不想要的值)进行连接。
    栗子:
    select s_id,GROUP_CONCAT(c_id SEPARATOR ';')from score GROUP BY s_id HAVING s_id = '01'

     

  • 相关阅读:
    【ansible】 笔记 (1)
    centos 把网卡名称修改为 eth0
    服务器从购买到交付使用流程
    (转载) Linux IO模式及 select、poll、epoll详解
    孤儿进程、僵尸进程和守护进程
    (转载)linux下各个文件夹的作用
    缓存穿透与缓存雪崩
    SpringCloud核心组件在微服务架构中的作用
    双十一电商Java开发聊聊秒杀限流的多种实现
    localhost 和 127.0.0.1 的区别
  • 原文地址:https://www.cnblogs.com/spider3658/p/13762175.html
Copyright © 2011-2022 走看看