MySQL之字符串拼接[通俗易懂]

MySQL之字符串拼接[通俗易懂]MySQL字符串拼接及分组字符串拼接涉及:concat,concat_ws,group_concat数据准备:CREATETABLE`app`(`app_id`intDEFAULT’0′,`version_code`intDEFAULT’0′,`download_count`intDEFAULT’0′)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ci;INSER..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

涉及方法:concat, concat_ws, group_concat

数据准备:

CREATE TABLE `app` (
  `app_id` int DEFAULT '0',
  `version_code` int DEFAULT '0',
  `download_count` int DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

INSERT INTO `app`(`app_id`, `version_code`, `download_count`) VALUES (1, 10, 90);
INSERT INTO `app`(`app_id`, `version_code`, `download_count`) VALUES (1, 11, 100);
INSERT INTO `app`(`app_id`, `version_code`, `download_count`) VALUES (1, 10, 20);
INSERT INTO `app`(`app_id`, `version_code`, `download_count`) VALUES (2, 15, 10);
INSERT INTO `app`(`app_id`, `version_code`, `download_count`) VALUES (2, 16, 15);
INSERT INTO `app`(`app_id`, `version_code`, `download_count`) VALUES (2, 17, 30);
INSERT INTO `app`(`app_id`, `version_code`, `download_count`) VALUES (2, 16, 5);
INSERT INTO `app`(`app_id`, `version_code`, `download_count`) VALUES (3, 2, 50);
INSERT INTO `app`(`app_id`, `version_code`, `download_count`) VALUES (4, 9, NULL);

MySQL之字符串拼接[通俗易懂]

一、concat()

  1. 功能:将多个字符串连接成一个字符串
  2. 语法:concat(str1, str2, …)
  3. 说明:返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null
select concat (app_id, ',', version_code, ',', download_count) as info from app;

 MySQL之字符串拼接[通俗易懂]

二、concat_ws()

  1. 功能:concat with separator,和concat()一样,但可以一次性指定分隔符将多个字符串连接成一个字符串
  2. 语法:concat_ws(separator, str1, str2, …)
  3. 说明:separator指定分隔符
select concat_ws (',', app_id, version_code, download_count) as info from app;

 MySQL之字符串拼接[通俗易懂]

三、group_concat()

  1.  功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果
  2.  语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc] [separator ‘分隔符’] );group_concat(expr)
  3.  说明:distinct排除重复值,order by子句对结果集进行排序,separator指定分隔符,缺省为逗号;expr为表达式
select app_id, 
group_concat(distinct version_code ORDER BY version_code separator '-') as res1, 
group_concat(concat_ws('-', version_code, download_count)) as res2
from app group by app_id;

MySQL之字符串拼接[通俗易懂]

注意点:

  1. 有字段值为null时concat和concat_ws拼接后的结果有所不同,结果图中红框圈注
  2. concat_ws第一个参数(指定分隔符)若为null,返回结果为null
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • 各种开源SLAM算法「建议收藏」

    各种开源SLAM算法「建议收藏」OpenSLAMhttp://openslam.org/FALKOLib(2DLIDAR)GMapping,GridSLAM(Tolearngridmapsfromlaserrangedata)tinySLAM(Laser-SLAMalgorithmin200linesofCcode)UnscentedFastSLAM(Laserdata,M…

    2022年6月16日
    58
  • java注释的作用是什么_java为什么要写注释

    java注释的作用是什么_java为什么要写注释1、什么是注释,有什么用?注释是对java源代码的解释说明。注释可以帮程序员更好的理解程序。2、注释信息只保存在java源文件当中,java源文件编译生成的字节码class文件,这个class文件中是没有这些注释信息的。3、在实际的开发中,一般项目组都要求积极的编写注释。这也是一个java软件工程师的基本素养。4、注释不是写的越多…

    2025年7月5日
    1
  • 0001.Latex中中文双引号和单引号的写法「建议收藏」

    0001.Latex中中文双引号和单引号的写法「建议收藏」0001.Latex中中文单引号和双引号的写法如何在Latex或者Ctex中输入中文双引号or单引号?在Latex中,查看Tab键上面的键,在英文状态下连续输入两个“,然后输入Enter键左边的单引号’’,输入两次,也是英文状态下哦。可以将一个矩阵$“\cdot$”按列拉直成一个向量注意引号与$符号的位置。同样的,中文单引号如下输入可以将一个矩阵$`\Gamma$’按列拉直成一个向量…

    2022年6月25日
    89
  • JAVA 使用Dom4j 解析XML

    JAVA 使用Dom4j 解析XML解析XML的方式有很多,本文介绍使用dom4j解析xml文件

    2022年6月21日
    35
  • css文本左右对齐_css垂直居中对齐

    css文本左右对齐_css垂直居中对齐css两端对齐怎么设置,css中文本的对齐有哪些内容导读:除了css两端对齐,本文还介绍了主要的css中文本的对齐有哪些。可以看到,常见的文本对齐方式是靠左、居中以及靠右,相对来说css两端对齐用得还是比较少的,只在某些特殊情况下使用。总之这些css代码很简单,大家应该能够很快学会。在设计页面的时候会涉及到文本对齐的问题,默认情况下是靠左对齐的,但有些时候也乤靠右对齐。本文给大家介绍下css两端对…

    2025年8月4日
    2
  • ASP.NET 使用Ajax

    ASP.NET 使用Ajax之前在Ajax初步理解中介绍了对Ajax的初步理解,本文将介绍在ASP.NET中如何方便使用Ajax,第一种当然是使用jQuery的ajax,功能强大而且操作简单方便,第二种是使用.NET封装好的Sc

    2022年7月4日
    24

发表回复

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

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