MySQL 中 concat 函数

MySQL 中 concat 函数MySQL中concat函数concat函数MySQL中concat函数MySQL中concat_ws函数MySQL中group_concat函数语法:concat(str1,str2,…)注意:返回结果为连接参数产生的字符串,如果有任何一个参数为NULL,则返回值为NULL。selectconcat(“a”,”b”,”c”);输出:abc注:Mysql的concat函数在连接字符串的时候,只要其中一个为NULL则返回值为NULL.sel

大家好,又见面了,我是你们的朋友全栈君。

MySQL 中 concat 函数

语法:concat(str1,str2,…)

注意:返回结果为连接参数产生的字符串,如果有任何一个参数为 NULL,则返回值为 NULL。


select concat("a","b","c");

输出:abc

注:

Mysql 的 concat 函数在连接字符串的时候,只要其中一个为 NULL 
则返回值为 NULL.

select  concat("1","2",null);

输出结果:NULL

MySQL 中 concat_ws 函数

语法:concat_ws(separator,str1,str2)

concat_ws() 代表 Concat With Separator,是 CONCAT() 的特殊形式,第一个参数是其他参数的分隔符。分隔符的位置放在要连接的两个字符串之间,分隔符可以是一个字符串,也可以是一个其他参数。

注意:如果分隔符为 NULL ,则结果为 NULL 。函数会忽略任何分隔符参数后的 NULL 值。


eg:字符串连接后以逗号分隔

select concat_ws(",","1","2","3");

输出结果: 1,2,3

与 Mysql 中 concat 函数不同的是,concat_ws 函数在执行的时候,
不会因为 NULL 值而返回 NULLselect concat_ws(",","1","2",NULL);

输出结果: 1.2



MySQL 中 group_concat 函数

语法:group_concat([DISTINCT]) 要连接的字段 [order by asc/desc 排序字段] [Separator ‘分隔符’]


eg: tableTest:有 id name 字段

select * from tableTest;
输出结果:
         id   name
         1     10
         1     20
         1	   20
         2     20
         3     200
         3     500

1. 以 id 分组,把 name 字段的值打印在一起,逗号分隔(默认)

    select id, group_concat(name) from tableTest group by id;

    输出结果:
            id  group_concat(name)
            1     10,20,20
            2     20
            3     200,500
		
2. 以 id 分组,把 name 字段的值打印在一行,分号分隔。

    select id,group_concat(name separator';') from tableTest group by id;

            id     group_concat(name separator';')
            1      10;20;20
            2      20
            3      200;500
		 
		 
3. 以 id 分组,把冗余的 name 字段的值打印在一行,逗号分隔。

    select id,group_concat(distinct name) from tableTest group by id;

    输出结果:
            id     group_concat(distinct name)
            1       10,20
            2       20
            3       200,500
             
4. 以 id 分组,把 name 字段的值打印在一行,逗号分隔,以 name 排倒序

	select id,group_concat(name order by name desc) from tableTest group by id;
	
	输出结果:
			id    group_concat(name order by name desc)
			1       20,20,10
			2       20
			3       500,300
			 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138920.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • win10 命令行进入指定目录方法[通俗易懂]

    win10 命令行进入指定目录方法[通俗易懂]原文地址:https://blog.csdn.net/weixin_29207913/article/details/106616959方法一在资源管理器”地址“前面输入cmd。如下图:确认后cmd就会进入相关目录,进行其他cmd操作。如下图:方法二在资源管理器中,按住shift,同时右键空白地方,将会出现分别点击红框中选项,能分别使用PowerShell和WSL进入对应目录…

    2022年10月16日
    1
  • pcep协议什么意思_SDN学习笔记

    pcep协议什么意思_SDN学习笔记SDN什么是SDNSDN是一种框架和思想,核心诉求是通过软件控制网络,实现业务的自动化部署,为方便软件来控制网络,希望控制面和转发面是分离的。例如,传统的交换机内部,由交换机负责具体的网络流量往哪里转发,在SDN中,有一个控制器进行流量转发的计算,然后将结果发送给交换机,交换机只进行简单的转发,从分布式的控制转发过程称为集中式的控制,使得控制和转发平面相分离。SDN的特点网络开放可编程、数控分离(…

    2022年9月7日
    0
  • Java 冒泡排序

    Java 冒泡排序Java冒泡排序冒泡排序是最为出名的排序算法之一,总共有八大排序!直接插入排序希尔排序简单选择排序堆排序冒泡排序快速排序归并排序基数排序冒泡排序还是比较简单的,两次循环吗,外层冒泡轮数,里层依次比较。上代码packageArrays;importjava.util.Arrays;/***冒泡排序*1.比较数组中,两个相邻的元素,如果第一个数比第二个大,我们就让它们交换位置*2.每一次比较,都会产生一个最大的,或者最小的数字*3.下

    2022年7月7日
    16
  • Latex数学公式-求导、分数的表示

    Latex数学公式-求导、分数的表示表示方法\frac{}{}:分数表示\partial:偏导符号代码效果意义\frac{x}{y}xy\frac{x}{y}yx​分数\partial∂\partial∂偏导符号举例$$\frac{\partialy}{\partialx_1}+\frac{\partialy}{\partialx_2}$$显示效果如下:∂y∂…

    2022年6月23日
    132
  • 如何完全卸载Android Studio (干干净净)

    如何完全卸载Android Studio (干干净净)

    2021年10月2日
    1.2K
  • python获取股票历史数据_量化交易之如何获取股票历史数据并存为csv

    python获取股票历史数据_量化交易之如何获取股票历史数据并存为csv量化研究尤其是进行基于价值投资的量化研究,需要上市公司的历史估值数据,如市盈率PE,市净率PB,或者市销率PS,市现率PCF。而有的人喜欢用exce或者csv文件的格式存放数据并且分析。我这里介绍一个网站,BaoStock,既支持直接下载历史数据为csv,也支持用程序下载数据并生成csv格式。网站地址是www.baostock.com,如果要下载历史估值数据,进入首页后,选择“沪深A股估值指标(日…

    2022年6月24日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号