sql group_contact()、concat()、concat_ws函数

2023-11-09

2019/08/12同事给我上了一课,以前从来没有注意过这group_contact()函数,感谢同事兄弟

一、CONCAT()函数
       CONCAT()函数用于将多个字符串连接成一个字符串。

      1、语法及使用特点:
      CONCAT(str1,str2,…)                       
      返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。可以有一个或多个参数。

2、使用示例:
SELECT CONCAT(id, ',',age) AS con FROM user_info LIMIT 1;
返回结果为:

SELECT CONCAT(id, NULL, age) from user_info LIMIT 1;

返回结果为:




3、如何指定参数之间的分隔符
使用语法为:CONCAT_WS(separator,str1,str2,…)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。


SELECT CONCAT_ws('_',id, NULL, age) from user_info LIMIT 1;



二、GROUP_CONCAT()函数
GROUP_CONCAT函数返回一个字符串结果,该结果由分组中的值连接组合而成。
语句SELECT `table`,`value`,dim from operate_detail WHERE 1=1 GROUP BY operate_id;的返回结果为


1、使用语法及特点:
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]]
[SEPARATOR str_val])
在 MySQL 中,你可以得到表达式结合体的连结值。通过使用 DISTINCT 可以排除重复值。如果希望对结果中的值进行排序,可以使用 ORDER BY 子句。
SEPARATOR 是一个字符串值,它被用于插入到结果值中。缺省为一个逗号 (","),可以通过指定 SEPARATOR "" 完全地移除这个分隔符。
可以通过变量 group_concat_max_len 设置一个最大的长度。在运行时执行的句法如下: SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;
如果最大长度被设置,结果值被剪切到这个最大长度。如果分组的字符过长,可以对系统参数进行设置:SET @@global.group_concat_max_len=40000;

2、使用示例:
语句 SELECT GROUP_CONCAT(`table`),GROUP_CONCAT(`value`),GROUP_CONCAT(dim) from operate_detail WHERE 1=1 GROUP BY operate_id; 的返回结果为


语句 select  GROUP_CONCAT(distinct fi.table_id),GROUP_CONCAT(distinct fi.field_id),GROUP_CONCAT( distinct fi.field_name),GROUP_CONCAT( distinct fi.field_name_chn),fi.field_type,GROUP_CONCAT(distinct ti.table_name),ods.operate_id,GROUP_CONCAT(distinct ods.graph),ods.join_type  from field_info  fi,table_info ti,(select  
od.operate_id,od.`table`,od.flag,od.graph,od.join_type 
from
operate_info oi LEFT JOIN  operate_detail  od on oi.operate_id=od.operate_id ) as ods where exists (select  
1
from
operate_info oi LEFT JOIN  operate_detail  od on oi.operate_id=od.operate_id where  fi.id=od.dim and  od.flag='0')
and ti.table_id=fi.table_id
and fi.table_id=ods.`table`
and ods.flag='0'
GROUP BY ods.operate_id 的返回结果为


语句SELECT locus,GROUP_CONCAT(concat_ws(', ',id,journal) ORDER BY id DESC SEPARATOR '. ') FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus;的返回结果为


| AB086827 | 2, Submitted (20-JUN-2002). 1, Unpublished                               
| AF040764 | 24, Submitted (31-DEC-1997) . 23, Unpublished                            
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql group_contact()、concat()、concat_ws函数 的相关文章

  • MySQL 排序顺序 - 排序规则?

    我在对 MySQL 中的 char 字段进行排序时遇到困难 问题是重音字符与非重音字符混淆 例如 Abc bd Acc 我认为这可能与整理有关 所以我将表格的排序规则更改为utf8 ut8 bin 看完之后这个帖子 https stacko
  • JDBC插入实数数组

    我试图将一个真实的数组插入到 postgresql 数组中 该表的定义是 String sqlTable CREATE TABLE IF NOT EXISTS ccmBlock sampleId INTEGER block REAL 插入内
  • 在 jQuery AJAX 成功中从 MySql 获取特定响应

    好吧 我有这个 ajax 代码 它将在 Success 块中返回 MySql 的结果 ajax type POST url index php success function data alert data My Query sql SE
  • 在存储过程中验证用户的最简单方法?

    我需要一个存储过程 可以通过发送以下内容来检查登录尝试时他们是否是有效用户login and password查看它们在数据库中是否匹配 有没有一种简单的方法可以做到这一点 如果没有更多信息 我目前能提供的最好信息是 CREATE STOR
  • 数据库字段中的逗号分隔值

    我有一个产品表 该表中的每一行对应一个产品 并由唯一的 ID 标识 现在 每个产品都可以有多个与该产品关联的 代码 例如 Id Code 0001 IN ON ME OH 0002 ON VI AC ZO 0003 QA PS OO ME
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • MySQL/PDO::quote() 尽管使用 PDO::PARAM_INT 参数,但仍在整数周围加上引号

    无论我传递给什么值 数据类型对 它都会出现 pdo gt quote value type 它总是将其引用为字符串 echo pdo gt quote foo PDO PARAM STR foo as expected echo pdo g
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • Mysql用in语句限制

    我正在写一个查询 SELECT user bookmarks id as user bookmark id bookmark id user bookmarks user id bookmark url bookmark website b
  • 删除行导致锁超时

    当我尝试从表中删除行时 我不断收到这些错误 这里的特殊情况是我可能同时运行5个进程 该表本身是一个 Innodb 表 约有 450 万行 我的 WHERE 子句中使用的列没有索引 其他指数按预期运行 这是在事务中完成的 首先删除记录 然后插
  • 如何从 SQL Server 2008 查询结果中删除“NULL”

    我有一个包含 59 列和超过 17K 行的表 很多行都有NULL在某些列中 我想删除NULL以便查询返回空白 而不是NULL 我可以运行一些更新功能来替换所有NULL with 使用 SQL Server 2008R2 Management
  • 如何在 DB2 中创建返回序列值的函数?

    如何在 DB2 中创建一个从序列中获取值并返回该值的函数 应该可以在 select 或 insert 语句中使用该函数 例如 select my func from xxx insert into xxx values my func 基本
  • 从 Getdate() 获取时间

    我想采取Getdate 结果 例如 2011 10 05 11 26 55 000 into 11 26 55 AM 我看过其他地方并发现 Select RIGHT CONVERT VARCHAR GETDATE 100 7 这给了我 11
  • MySQL 与日语字符

    我试图弄清楚如何创建一个表 以便我可以在其中插入日语名字 现在我有 Type InnoDB Encoding UTF 8 Unicode utf8 Collation utf8 general ci 但是 当我插入字符时 它显示为 当我使用
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • 如何使用 BigQuery 有效地选择另一个表中匹配子字符串的记录?

    我有一个包含数百万个字符串的表 我想将其与包含大约两万个字符串的表进行匹配 如下所示 standardSQL SELECT record FROM record JOIN fragment ON record name LIKE CONCA
  • mysql排序和排名语句

    我需要一些 mysql 语句的帮助 我的表 1 有 7 列 表 2 有 8 列 额外的列名为排名 我的语句应该是这样的 从表 1 中选择全部 然后按 用户数 排序 将其插入表 2 中并排名开始 1 2 3 等 table 1 usernam
  • MySQL 转储未知选项“-no-beep”

    在旧服务器上我使用了mysql转储命令来备份 MySQL 数据库 在新服务器上 MySQL 版本为 5 6 相同的命令给出了错误 unknown option no beep 无论它插入什么 我也在互联网上搜索过 但找不到任何帮助 在 my
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST

随机推荐

  • 【计算机视觉

    文章目录 一 Electronics Object Image Dataset Computer Parts datacluster ai 二 Hindi Text Image Dataset Hindi in the wild datac
  • 华为OD机试题库 2023 2022 备忘录

    华为OD机试 2023 快递投放问题 C Java JavaScript Python 华为OD机试 2023 优秀学员统计 C Java JavaScript Python 华为OD机试 2023 上班之路 是否能到达公司 C Java
  • qjason

    写了例子 解释也在例子里面 例子传在资源里面了
  • 传输层协议TCP和UDP协议

    TCP和UDP协议 TCP协议 1 TCP报文段 UDP协议 TCP的 三次握手 和 四次挥手 1 三次握手 2 四次挥手 TCP协议 TCP 协议是面向连接的 可靠的进程到进程通信的协议 TCP提供全双工服务 每一个TCP都有发送缓存和接
  • 如何安装免费https证书

    主页 可以防止数据在传输过程中产生的隐私泄露的问题 原来的网站在经过ssl证书的签发后会变成https开头 下面记录一下配置https加密的整个过程 文章目录 购买域名 设置https加密 购买域名 首先第一步我们为了防止自己的公网ip暴露
  • 位图Bitmap

    位图图像 bitmap 亦称为点阵图像或绘制图像 是由称作像素 图片元素 的单个点组成的 这些点可以进行不同的排列和染色以构成图样 当放大位图时 可以看见赖以构成整个图像的无数单个方块 扩大位图尺寸的效果是增大单个像素 从而使线条和形状显得
  • 配置SSH服务器使用证书登录

    服务器端配置 https www cnblogs com gyjerry p 7275242 html 客户端公钥对生成 https docs github com en github ae latest authentication co
  • python中length用法_为什么Python代码使用len()函数而不是length方法?

    为什么Python代码使用len 函数而不是length方法 我知道python有一个 len 函数 用于确定字符串的大小 但我想知道为什么它不是字符串对象的方法 更新 好吧 我意识到我很尴尬 len 实际上是一个字符串对象的方法 使用字符
  • python连接hive kerberos_JDBC 连接Hive 简单样例(开启Kerberos)

    今天在移动的云平台上通过jdbc连接hive 发现云平台使用了 kerberos的认证 与宁波实验环境不同 发现一文解决了问题 转载如下
  • IBM刀片服务器虚拟化方案

    一 IBM eServer x系列服务器的虚拟化解决方案 在IBM eServer x系列服务器上的虚拟化采用了VMware软件解决方案 通过VMware软件 搭建在操作系统和应用 以及物理平台之间的抽象层 使得每个物理系统上可运行多个虚拟
  • console.log打印结果是 [object Object] 的解决方案

    学习笔记使用 自己看的 下图是前端打印data数据的 console log data 6666666666666111 打印的时候 不能用 号 要用 使用 号的话 在控制台就会发现 输出的是 object Object console l
  • haproxy-keepalived-centos7.9相关功能实现

    nginx和haproxy的异同点 不同点 nginx可工作在四层和七层 haproxy一般工作在四层 haproxy作为负载均衡器性能比nginx优秀 如果有条件建议四层单独跑haproxy 二者的定位不同 ha定位就是负载均衡器 而ng
  • windows编译ffmpeg,并开启png的编解码器

    废话不多说了 先上下载链接 ffmpeg官方网站 http ffmpeg org download html ffmpeg源码下载链接 https ffmpeg org releases ffmpeg 3 4 13 tar gz 如果需要其
  • uniapp开发微信小程序腾讯地图功能,生成地点云的sig签名

  • 深度学习模型压缩与优化加速(Model Compression and Acceleration Overview)

    1 简介 深度学习 Deep Learning 因其计算复杂度或参数冗余 在一些场景和设备上限制了相应的模型部署 需要借助模型压缩 系统优化加速 异构计算等方法突破瓶颈 即分别在算法模型 计算图或算子优化以及硬件加速等层面采取必要的手段 模
  • HDU--1062:Text Reverse (字符串)

    1 题目源地址 http acm hdu edu cn showproblem php pid 1062 2 解题思路 这道题算是字符串中的水题 题意很简单 输入一行字符串 每个单词按照逆序输出 很容易想到利用空格来控制输出 3 解题代码
  • GO--Hello workd

    Go是一门编译型语言 Go语言的工具链将源代码及其依赖转换成计算机的机器指令 译注 静态编译 Go语言提供的工具都通过一个单独的命令go调用 go命令有一系列子命令 最简单的一个子命令就是run 这个命令编译一个或多个以 go结尾的源文件
  • 七夕要到了,快用Python比心表白吧biubiubiu

    每到各种节日 不少小伙伴们都会遇到这样一个世纪问题 怎么给心仪的女生 女朋友 老婆一个与众不同的节日惊喜 这不马上就又要到七夕了嘛 我们可以尝试用python给女朋友比心表白 就像下面这这样 下面就带大家来领略一下用Python表白的方式
  • Qt实现Http通信

    Qt学习需要http传值 研究了好几天终于可以了这里只是一个最简单的通信 我的Qt是5 7 1 在Pro内添加 QT network widget h中的源码 ifndef WIDGET H define WIDGET H include
  • sql group_contact()、concat()、concat_ws函数

    2019 08 12同事给我上了一课 以前从来没有注意过这group contact 函数 感谢同事兄弟 一 CONCAT 函数 CONCAT 函数用于将多个字符串连接成一个字符串 1 语法及使用特点 CONCAT str1 str2 返回