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


相关推荐

  • 计算机网络ip地址划分范围,ip地址分类及范围划分有哪些

    计算机网络ip地址划分范围,ip地址分类及范围划分有哪些ip地址分为网络地址和主机地址,IP地址是真正网络中计算机的身份标识。手机的IP是手机上网使用的地址,不论是手机还是电脑,一个网段里面只有一个IP,所以每个人手机的IP都是唯一的,当用手机发朋友圈时,就会显示手机ip地址所在地,因此有些人会想要修改手机ip地址。那么ip地址可分为哪几类?其范围是怎么划分的?如何修改手机ip地址?下面小编为大家解答手机ip地址修改方法及ip地址分类及范围划分等知识。…

    2022年5月29日
    51
  • Windows11安装 Python

    Windows11安装 PythonWindow11安装Python

    2025年8月7日
    3
  • Pytest(5)美化插件进度条pytest-sugar

    Pytest(5)美化插件进度条pytest-sugar前言在我们进行自动化测试的时候,用例往往是成百上千,执行的时间是几十分钟或者是小时级别。有时,我们在调试那么多用例的时候,不知道执行到什么程度了,而pytest-sugar插件能很好解决我们的痛点。

    2022年7月30日
    40
  • Android程序员的进阶之路

    Android程序员的进阶之路本文主要论述的是android程序员的进阶之路,博主本人就是一名android开发攻城狮,所以这里讲述的大多数是android开发攻城狮的技术进阶之路,如有问题请多指正。大家都知道程序员之中有有菜鸟程序员和大神之分,这里我这暂时把android程序员分为几个层次:android初级程序员、android中级程序员、android高级程序员、android技术专家、CTO等等,不同的级别掌握的能力不

    2022年6月14日
    108
  • django的orm查询方法_查看django版本命令

    django的orm查询方法_查看django版本命令前言查找是数据库操作中一个非常重要的技术。查询一般就是使用filter、exclude以及get三个方法来实现。我们可以在调用这些方法的时候传递不同的参数来实现查询需求。在ORM层面,这些查询条件都

    2022年8月7日
    8
  • 我的世界java版和基岩版对比_我的世界:盘点基岩版与JAVA版的差异,看完后选谁就一目了然了…

    我的世界java版和基岩版对比_我的世界:盘点基岩版与JAVA版的差异,看完后选谁就一目了然了…大家好,今天我们来讲讲基岩版与JAVA版的差异,根据个人爱好不同,看完后选谁就一目了然了。1.基岩版与Win10版的特性是相同的。JAVA版与Win10没什么相同的地方。2.基岩版是没有活塞bud的,而JAVA有更多bud状态。3.基岩版在红石方面会比较便捷,如基岩版的活塞可以推动容器,而JAVA版则没有这个特性。4.JAVA版有比基岩版更多的MOD。5.JAVA版的命名牌改成某个名字(忘记是什么…

    2022年7月7日
    31

发表回复

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

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