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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 六大算法之动态规划_动态规划求解最大子数组

    六大算法之动态规划_动态规划求解最大子数组一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向下 -> 向下向下 -> 向下 -> 向右向下 -> 向右 -&gt

    2022年8月9日
    7
  • systemctl使用reload及踩坑

    systemctl使用reload及踩坑1 demo service 文件 Unit Description demo demoserverDo http git demo com demoAfter network targetremote fs targetnss lookup target Service Type sampleUser rootPIDFile run demo

    2025年10月13日
    3
  • Centos7下载和安装教程

    Centos7下载和安装教程1.CentOS下载CentOS是免费版,推荐在官网上直接下载,网址:https://www.centos.org/download/DVDISO:普通光盘完整安装版镜像,可离线安装到计算机硬盘上,包含大量的常用软件,一般选择这种镜像类型即可。EverythingISO:包含了完整安装版的内容,并对其进行补充,集成了所有软件。MinimalISO:这个版本为精简版的镜像,可以安…

    2022年6月13日
    35
  • java中保留两位小数的方法_java float保留两位小数

    java中保留两位小数的方法_java float保留两位小数项目中有一个小需求,两个整数相除,结果需要保留两位小数,即1.00、0.50这种数据格式。以下做法不行,因为两整数相除,小数点以后的数字会被截断,让运算结果为整数类型,intx=10;inty=20;inta=x/y;System.out.println(a);//输出0System.out.println(x/y);//输出0System.out.println((floa…

    2022年9月24日
    3
  • shell基础 — 基本语法

    shell基础 — 基本语法本文介绍一下shell的语法。一、变量在shell里,使用变量之前通常并不需要事先为他们做出声明,需要使用的时候直接创建就行了。默认情况下,所有变量都被看做字符串并以字符串来存储,即使它们

    2022年7月4日
    23
  • Flash cookie — 本地共享对象(LOCAL SHARED OBJECTS)

    Flash cookie — 本地共享对象(LOCAL SHARED OBJECTS)写道本地共享对象(有时也称为“Flashcookie”)是一些可由您访问的站点在您的计算机上创建的数据文件。共享对象大多数情况下用来增强您浏览Web的体验。网站可以在您的计算机上编写cookie,当您下次访问该网站时,它将加载该cookie及其信息,从而使您拥有一种更加个性化的体验。例如,您可能让站点记住您的登录名。该信息存储在cookie中,并在您下次访问时被检索…

    2022年7月15日
    11

发表回复

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

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