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


相关推荐

  • C语言 — void的用法解析[通俗易懂]

    C语言 — void的用法解析[通俗易懂]C语言-void的用法解析简介​ void中文翻译为”无类型”,有的也叫”空类型”。常用在程序中对定义函数的参数类型、返回值、函数中指针类型进行声明。用法​ void应用最广泛的就是跟指针结合,即void* //无类型指针,也称为空指针,可以指向任何类型的数据 //注意一点:当我们需要使用void类型的的指针变量区指向 某一类型的变量的时候,必须要对其进行类型转换​ 这里补充一点:因为我们在定义一个指针变量的时候第一件事就是指定我们指针变量所指向的变量的类型。一

    2022年5月19日
    103
  • filter suction_filter属性

    filter suction_filter属性概要说明       FilterDispatcher是早期struts2的过滤器,后期的都用StrutsPrepareAndExecuteFilter了,如2.1.6、2.1.8。StrutsPrepareAndExecuteFilter名字已经很能说明问题了,prepare与execute,前者表示准备,可以说是指filter中的init方法,即配制的导入;后者表示进行过滤,指doF

    2022年8月16日
    3
  • erlang 初体验

    erlang 初体验

    2022年1月26日
    54
  • log4j pattern详解_标题的含义和作用ppt

    log4j pattern详解_标题的含义和作用pptConversionPattern参数的格式含义格式名含义%c输出日志信息所属的类的全名%d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-ddHH:mm:ss},输出类似:2002-10-18-22:10:28%f输出日志信息所属的类的类名%l输出日志事件的发生位置,即输出日志信息的语句处于它所在…

    2022年8月22日
    5
  • mysql datetime格式化日期(日期格式化)

    Mysql日期格式化查询问题写sql语句时发现怎么都查不出来数据,后来发现数据格式化后和前台传入的数据格式不一样。前台传入数据格式‘2018-11-5’原先sql查询语句(mybatis中)SELECTcount(*)count,a.store_idstoreid,DATE_FORMAT(a.timeone,’%Y-%m-%d’)mytime,s.abbrev…

    2022年4月13日
    118
  • 大盘进入极度敏感区域

    大盘进入极度敏感区域《比技术面更重要的三个信息》,其中所说的三点都是凌驾于技术面的东西。非常重要,也必须时刻关注。如果股市变化通过看看K线,看看技术指标就能够掌握全局变化,那就是大笑话了。 现在,那篇评论里谈到的第一个问题就有了明显变化,美圆指数连续收出三根红K线,并且已有突破从09年3月形成的下降趋势的迹象。 和这个迹象紧密相连的另外一个变化就是石油、黄金价格持续下跌。这…

    2022年6月29日
    21

发表回复

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

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