mysql中字符串拼接函数_MySQL字符串连接函数

一、CONCAT(str1,str2,…)

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

select concat(s_id, "--", s_bar_code) from `t_storage_order_detail` WHERE `s_sn` LIKE '%R2016091200002%' LIMIT 0, 1000;

+--------------------------------+

| concat(s_id, "--", s_bar_code) |

+--------------------------------+

| 204--6930000003111 |

| 205--6930000003128 |

| 206--6930000003135 |

| 207--6930000003142 |

| 208--6930000003159 |

| 209--6930000003166 |

| 210--6930000003173 |

| 211--6930000003180 |

| 212--6930000003197 |

| 213--6930000003203 |

| 214--6930000003210 |

| 215--6930000003227 |

+--------------------------------+

二、MySQL中 concat_ws 函数

使用方法:

CONCAT_WS(separator,str1,str2,...)

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

mysql> select concat_ws("--",s_id,s_bar_code) from `t_storage_order_detail` WHERE `s_sn` LIKE '%R2016091200002%' LIMIT 0, 1000;

+---------------------------------+

| concat_ws("--",s_id,s_bar_code) |

+---------------------------------+

| 204--6930000003111 |

| 205--6930000003128 |

| 206--6930000003135 |

| 207--6930000003142 |

| 208--6930000003159 |

| 209--6930000003166 |

| 210--6930000003173 |

| 211--6930000003180 |

| 212--6930000003197 |

| 213--6930000003203 |

+---------------------------------+

28 rows in set

三、MySQL中 group_concat 函数

完整的语法如下:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

mysql> select group_concat("'",s_bar_code,"'") from `t_storage_order_detail` WHERE `s_sn` LIKE '%R2016091200002%' LIMIT 0, 1000;

+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| group_concat("'",s_bar_code,"'") |

+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| '6930000003111','6930000003128','6930000003135','6930000003142','6930000003159','6930000003166','6930000003173','6930000003180','6930000003197','6930000003203','6930000003210','6930000003227','6930000003234','6930000003241','6930000003258','6930000003265','6930000003272','6930000003289','6930000003296','6930000003302','6930000003319','6930000003326','6930000003333','6930000003340','6930000003357','6930000003364','6930000003371','6930000003388' |

+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

1 row in set

基本查询

mysql> select * from aa;

+------+------+

| id| name |

+------+------+

|1 | 10|

|1 | 20|

|1 | 20|

|2 | 20|

|3 | 200   |

|3 | 500   |

+------+------+

6 rows in set (0.00 sec)

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

mysql> select id,group_concat(name) from aa group by id;

+------+--------------------+

| id| group_concat(name) |

+------+--------------------+

|1 | 10,20,20|

|2 | 20 |

|3 | 200,500|

+------+--------------------+

3 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,分号分隔

mysql> select id,group_concat(name separator ';') from aa group by id;

+------+----------------------------------+

| id| group_concat(name separator ';') |

+------+----------------------------------+

|1 | 10;20;20 |

|2 | 20|

|3 | 200;500   |

+------+----------------------------------+

3 rows in set (0.00 sec)

以id分组,把去冗余的name字段的值打印在一行,

逗号分隔

mysql> select id,group_concat(distinct name) from aa group by id;

+------+-----------------------------+

| id| group_concat(distinct name) |

+------+-----------------------------+

|1 | 10,20|

|2 | 20   |

|3 | 200,500 |

+------+-----------------------------+

3 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序

mysql> select id,group_concat(name order by name desc) from aa group by id;

+------+---------------------------------------+

| id| group_concat(name order by name desc) |

+------+---------------------------------------+

|1 | 20,20,10   |

|2 | 20|

|3 | 500,200|

+------+---------------------------------------+

3 rows in set (0.00 sec)

1.int字段的连接陷阱 当你用group_concat的时候请注意,连接起来的字段如果是int型,一定要转换成char再拼起来, 否则在你执行后(ExecuteScalar或者其它任何执行SQL返回结果的方法)返回的将不是一个逗号隔开的串, 而是byte[]。 该问题当你在SQLyog等一些工具中是体现不出来的,所以很难发现。

select group_concat(ipaddress) from t_ip 返回逗号隔开的串

select group_concat(id) from t_ip 返回byte[]

select group_concat(CAST(id as char)) from t_dep 返回逗号隔开的串

select group_concat(Convert(id , char)) from t_dep 返回逗号隔开的串

附Cast,convert的用法:

CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)

CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。 这个类型 可以是以下值其中的 一个: BINARY[(N)] CHAR[(N)] DATE DATETIME DECIMAL SIGNED [INTEGER] TIME UNSIGNED [INTEGER]

2.长度陷阱 用group_concat连接字段的时候是有长度限制的,并不是有多少连多少。但你可以设置一下。

使用group_concat_max_len系统变量,你可以设置允许的最大长度。

程序中进行这项操作的语法如下,其中 val 是一个无符号整数: SET [SESSION | GLOBAL] group_concat_max_len = val;

若已经设置了最大长度, 则结果被截至这个最大长度。 在SQLyog中执行 SET GLOBAL group_concat_max_len = 10 后,

重新打开SQLyog,设置就会生效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云终端linux系统,让同方安全的云终端运行于Linux系统之上(二)

4、显示驱动与云终端显示相关的硬件包括多层控制器(MLC)及显示控制器(DPC)。MLC对应的修改的程序是mlc.c、mlc.h、main.c,DPC对应修改的程序为dpc_config.h、dpc_ioctl.h及main.c。修改主要涉及MLC顶层的初始设置、显示LOGO设置、及系统默认显示分辨率的设置、及与Pollux硬件相…

4列变成5列 datatable_云南美食界“5巨头”,谁才是NO.1?你家乡的那道菜也在列...

每个城市都有自己盛产的食材,最终也被制作成几代都传延至今的美食,这便是美食的传承。今天小编就来说说云南美食,下面这云南美食界“5巨头”,谁才是你心里的NO.1?你家乡的那道菜也在列哦~云南大理:白族泥鳅…

linux+基因组字符替换,liftover基因组版本直接的coordinate转换

下载地址:http://hgdownload.cse.ucsc.edu/admin/exe/使用方法:【从hg38转到hg19】因为主流的基因组版本还是hg19,但是时代在进步,已经有很多信息都是以hg38的形式公布出来的了。比如,我下载了pfam.df这个protein domain注释文件,…

elinput内容过长显示悬浮框_excel中一直被忽视的名称框,用好了也能提高效率

在excel左上角功能区下方,有一个名称框(下图红框中的部分)。大部分朋友应该没注意过这个地方有什么作用,或者仅仅知道名称框中会显示单元格的位置,因此在操作中这项功能无法表现出其真正的效果。本文就为大家介绍一下关于名称框的一些实用功能…

linux 漏洞 poc,CVE-2017-11176: 一步一步linux内核漏洞利用 (二)(PoC)

使第二次循环中的fget()返回NULL到目前为止,在用户态下满足了触发漏洞的三个条件之一。TODO:使netlink_attachskb()返回1[DONE]exp线程解除阻塞使第二次fget()调用返回NULL在本节中,将尝试使第二次fget()调用返回NULL。这会使得在第二个循环期间跳到“退…

同步轨道进入过程_“收官之星”定点成功!北斗三号卫星全部进入长管模式

◎ 徐新芳 科技日报记者 付毅飞6月30日14时15分,北斗三号全球卫星导航系统最后一颗组网卫星成功定点于距离地面约36000公里的地球同步轨道,顺利进入长期运行管理模式。卫星有效载荷已完成开通,经过遥测数据判读,星载基准频率合成器…

将当前的head推送到远程_Git 通俗易懂系列 三、远程仓库和标签

远程仓库git remote :列出每个远程库的简短名字。如:origin。git remote -v :显示对应的克隆地址,如:originhttp://gitlab.xxx.corp/xxx.git 添加远程库:git remote add pb git://github.com/xxx.gitpb 指代对应的仓库…

linux中cv调用摄像头,ubuntu中opencv调用摄像头

ubuntu中opencv调用摄像头ubuntu中opencv调用摄像头文章目录一、Ubuntu中安装opencv二、关于Linux如何开启摄像头1.安装VMvareTools,这个是真的强,解决了很多常遇到的问题,比如Linux和Windows无法交互粘贴复制的问题。2.要保证Linux这边能开启…

为什么只有奇次谐波_关于开关电源谐波失真,这有一份测量分析方法经验分享!...

无论是从保护电力系统的安全还是从保护用电设备和人身的安全来看,严格控制并限定电流谐波含量,以减少谐波污染造成的危害已成为人们的共识。总谐波失真THD与功率因数 PF 的关系市面上很多的 LED 驱动电源,其输入电路采用简单的桥式整流器和电…

c语言程序设计平时作业代刷,C语言程序设计——小学生口算刷题系统

程序函数关系图函数功能及全局变量介绍代码中已有详细注释的地方不再进行解释。全局变量Cut( )函数此函数用于分割界面,使界面更为美观。Start( )函数此函数集成了开始菜单,年级的输入,为了营造一个快乐而刺激的刷题体验,程序与用…

机器人出魔切还是三相_工业机器人常见故障和修理方法

机械手常见故障和修理方法 1.先动口再动手对于有故障的电气设备,不应急于动手,应先询问产生故障的前后经过及故障现象。对于生疏的设备,还应先熟悉电路原理和结构特点,遵守相应规则。拆卸前要充分熟悉每个电气部件的功能、位置、连…

字符串转内存c语言,【一起学C】C语言面试题必考:字符串操作函数,内存操作函数实现...

本帖最后由 奉聪 于 2017-1-25 14:54 编辑*******前言*******我数一下,我发了几个帖子,1、2、3?哈哈哈,没几个哈,感谢吾爱,让我学到了很多,乐于分享,共同进步!最近也是在…

matlab 图像显著性检测ft_全局对比度的图像显著性检测算法

点击上方蓝字关注我们星标或者置顶【OpenCV学堂】干货与教程第一时间送达!显著性检测概念显著性就是可以快速引起你注意的对象或者物体,在图像或者视频中显著性检测的结果往往是图像或者视频中对象,在神经学科中显著性检测被描述为注意力机制…

在c51语言的程序中 注释一般采用,【判断题】在 C51 语言的程序中,注释一般采用 /* */ 和 // 来实现。 (3.0分)...

当ab<0时,化简a2b的结果是()A.-abB.a-bC.-a-bD.ab(-5)2的化简结果为()A.25B.5C.-5D.&a…

修改所有列_哪些数据库是行存储?哪些是列存储?有什么区别?

大多数数据库系统存储一组数据记录,这些记录由表中的列和行组成。字段是列和行的交集:某种类型的单个值。属于同一列的字段通常具有相同的数据类型。例如,如果我们定义了一个包含用户数据的表,那么所有的用户名都将是相同的类型&a…

函数指针定积分C语言,急!!!利用函数指针变量编写一个求定积分的通用函数,...

急!!!利用函数指针变量编写一个求定积分的通用函数,答案:4 信息版本:手机版解决时间 2021-05-05 09:17已解决2021-05-05 02:15用它分别求5个函数的定积分:每次需要求定积分的函数是不一样的。可以编写一个求定积分的通…

cordova 更改app版本_【ios马甲包cps联运】App上架难 马甲包不知道该怎么做?

专业app代上架!解决全网IOS上包难诸多问题 ,提供多类别马甲包功能包定制服务!(直播.财务.社交.生活.游戏.电商)另外提供app加速审核及好评优化服务.长期出售白包功能包!总的来说,App Store 的上架流程,主要分为 7 大步骤:1、创建证…

须使用visual c 内联汇编语言开发,在VisualC 中使用内联汇编

在VisualC 中使用内联汇编2008-04-09 04:08:57来源:互联网 阅读 ()一、内联汇编的优缺点因为在Visual C 中使用内联汇编不需要额外的编译器和联接器,且可以处理Visual C 中不能处理的一些事情,而且可以使用在C/C 中的变量,所以非常…

dockerfile 修改文件权限_网易技术实践|Docker文件系统实战

在本文中,我们来实战构建一个Docker镜像,然后实例化容器,在Docker的生命周期中详细分析一下Docker的文件存储情况和DockerFile优化策略。在开始实战之前,我们先介绍一个概念,联合文件系统(Union File Syste…

stm32c语言写数码管定时器,使用TIM1产生1秒定时控制数码管显示0-9(STM32_10)

一、项目配置1、新建项目文件夹"TimSeg";2、通过Keil5创建新项目,保存在所创建的文件夹中(设项目名为pTimSeg),选择MCU芯片为"STM32F103ZE"(本程序使用的硬件为:STM32-PZ6806L开发板)3、在"TimSeg"…