MySQL实现字段或字符串拼接的三种方式总结

目录
  • 一、CONCAT函数
    • 1.1、拼接非空字段或字符串
    • 1.2、拼接空(NULL)字段
  • 二、CONCAT_WS函数
    • 2.1、拼接非空字段或字符串
    • 2.2、拼接空(NULL)字段
  • 三、GROUP_CONCAT函数
    • 3.1、默认以逗号分隔符连接
    • 3.2、可自定义对字段去重排序和指定分隔符
    • 3.3、group_concat的限制和设置

一、CONCAT函数

concat函数是将多个字段或字符串拼接为一个字符串;但是字符串之间没有任何分隔。

concat函数官方介绍

-- CONCAT函数的语法如下:
CONCAT(str1,str2,...)

1.1、拼接非空字段或字符串

SELECT CONCAT(字段1,字段2,字段3,...) from 表名;

-- 拼接表字段示例
SELECT CONCAT(id,genre,release_year) result from movies;

执行结果如下:

SELECT CONCAT(字符串1,字符串2,字符串3,...) ;

-- 拼接字符串示例
SELECT CONCAT('张三','李四','王五') result;

执行结果如下:

1.2、拼接空(NULL)字段

如果拼接的字段中有一个为null,则结果为null。

SELECT CONCAT(字符串1,字符串2,字符串3,...) ;

-- 拼接含有NULL字符串示例
SELECT CONCAT('张三',NULL,'王五') result;

执行结果如下:

二、CONCAT_WS函数

concat_ws函数将多个字段或字符串拼接为一个字符串,且字符串直接可以指定分隔符;

concat_ws函数的官方介绍

-- CONCAT_WS函数的语法如下:
CONCAT_WS(separator,str1,str2,...)

2.1、拼接非空字段或字符串

-- 拼接非空字段示例:
SELECT CONCAT_WS(' ',id,genre,release_year) result from movies;

-- 拼接字符串示例:
SELECT CONCAT_WS(' ','张三','李四','王五') result ;

执行结果如下:

2.2、拼接空(NULL)字段

-- 拼接空(NULL)字符串示例:
SELECT CONCAT_WS(' ','张三',NULL,'王五') result ;

执行结果如下:

三、GROUP_CONCAT函数

group_concat函数可以将多行字段数据合并为一行;且内容之间可以指定分隔符;

group_concat函数的官方介绍

group_concat函数的官方介绍翻译

-- group_concat函数的语法如下:
GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr}
                 [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val]
             [LIMIT {[offset,] row_count | row_count OFFSET offset}])

3.1、默认以逗号分隔符连接

-- 默认的逗号分隔
SELECT GROUP_CONCAT(字段名) from 表名;

-- 默认逗号分隔示例:
SELECT GROUP_CONCAT(genre) from movies;

执行结果如下:

3.2、可自定义对字段去重排序和指定分隔符

3.2.1、自定义分隔符

-- 自定义字符串分隔符
SELECT GROUP_CONCAT(字段名 SEPARATOR '分隔符号') from 表名;

-- 示例:
SELECT GROUP_CONCAT(genre SEPARATOR ';') from movies;

3.2.2、将整数转为字符串

--将整数字段转为字符
SELECT GROUP_CONCAT(CAST(字段名 as CHAR) SEPARATOR '分隔符号') from 表名;

-- 示例
SELECT GROUP_CONCAT(CAST(id as CHAR) SEPARATOR ';') from movies;

执行结果如下:

3.2.3、多字段拼接

-- 多字段拼接
SELECT GROUP_CONCAT(字段1,字段2,字段3 SEPARATOR '分隔符号') from 表名;

-- 示例
SELECT GROUP_CONCAT(release_year,genre,imdb SEPARATOR ';') from movies;

执行结果如下:

3.2.4、字段去重排序和自定义分隔

-- 字段去重排序和自定义分隔
SELECT GROUP_CONCAT(DISTINCT 字段名 ORDER BY 字段名 asc或desc SEPARATOR '分隔符号') from movies;

-- 示例
SELECT GROUP_CONCAT(DISTINCT genre ORDER BY genre DESC SEPARATOR ';') from movies;

执行后结果如下:

3.3、group_concat的限制和设置

3.3.1、查看当前group_concat函数的长度

默认是1024字节即1k;

-- 查看当前group_concat函数的长度
show variables like 'group_concat_max_len';

执行结果如下:

3.3.2、设置当前Session的group_concat函数的长度,不影响其他的Session

-- 设置当前Session的group_concat的长度为1M
SET SESSION group_concat_max_len = 1048576;

执行结果如下:

3.3.3、设置全局 group_concat函数的长度,需断开后重新连接才生效

-- 设置全局 group_concat函数的长度,需断开后重新连接才生效
SET GLOBAL group_concat_max_len = 1048576;

执行结果如下:

到此这篇关于MySQL实现字段或字符串拼接的三种方式总结的文章就介绍到这了,更多相关MySQL字段 字符串拼接内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • mysql 多个字段拼接的实例详解

    Mysql的查询结果行字段拼接,可以用下面两个函数实现: 1. concat函数 mysql> select concat('1','2','3') from test ; +---------------------+ | concat('1','2','3') | +---------------------+ | 123 | +---------------------+ 如果连接串中存在NULL,则返回结果为NULL: mysql> select concat('1','2',NULL

  • MySQL实现字符串的拼接,截取,替换,查找位置的操作

    MySQL字符串的拼接.截取.替换.查找位置. 常用的字符串函数: 函数 说明 CONCAT(s1,s2,...) 返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL则返回值为NULL. CONCAT_WS(x,s1,s2,...) 返回多个字符串拼接之后的字符串,每个字符串之间有一个x. SUBSTRING(s,n,len).MID(s,n,len) 两个函数作用相同,从字符串s中返回一个第n个字符开始.长度为len的字符串. LEFT(s,n).RIGHT(s,n) 前者返

  • MySql逗号拼接字符串查询的两种方法

    下面两个函数的使用和FIND_IN_SET一样,使用时只需要把FIND_IN_SET换成FIND_PART_IN_SET或FIND_ALL_PART_IN_SET 例如某字段里是为1,2,3,4,5 使用方法: 第一种,传入1,3,6  可以查出来 select * from XXX where FIND_PART_IN_SET('1,3,6','1,2,3,4,5') 第二种,传入1,3,6  查不出来 select * from XXX where FIND_ALL_PART_IN_SET(

  • Mysql 实现字段拼接的三个函数

    给运营导出数据时,难免需要对字段进行拼接,如果 Mysql 可以完成的话,就可以少些很多代码. concat() concat_ws() group_concat() Mysql 确实有几个函数可以对字段进行拼接. concat() 将多个字段使用空字符串拼接为一个字段 mysql> select concat(id, type) from mm_content limit 10; +------------------+ | concat(id, type) | +--------------

  • Mysql合并结果接横向拼接字段的实现步骤

    前言 近日在做一个报表功能里面有一个这样的需求是统计各部门在某一月入职和离职的人数 我的步骤 先查出入职的人数 SELECT dept ,COUNT(1) rcNumber FROM 员工表 WHERE ( 入职时间 != '' OR 入职时间 IS NOT NULL) and DATE_FORMAT(入职时间, '%Y-%m')= '2019-09' GROUP BY 部门ID ORDER BY 部门名称 查询记录 在查询出离职的人数sql: SELECT dept ,COUNT(1) rcN

  • MySQL实现字段或字符串拼接的三种方式总结

    目录 一.CONCAT函数 1.1.拼接非空字段或字符串 1.2.拼接空(NULL)字段 二.CONCAT_WS函数 2.1.拼接非空字段或字符串 2.2.拼接空(NULL)字段 三.GROUP_CONCAT函数 3.1.默认以逗号分隔符连接 3.2.可自定义对字段去重排序和指定分隔符 3.3.group_concat的限制和设置 一.CONCAT函数 concat函数是将多个字段或字符串拼接为一个字符串:但是字符串之间没有任何分隔. concat函数官方介绍 -- CONCAT函数的语法如下:

  • mysql字符串拼接的4种方式总结

    目录 前言 第一种: 第二种: 第三种: 第四种(运算,只对数字有效): 附:MySQL group_concat()详解 总结 前言 总是记不住字符串拼接,每次都要百度去搜索,所以在这里记录一下,好方便后续的查找,如有错误和问题可以提出,谢谢. 字符串拼接分为几种方式,在这里会一一举例写出: 第一种: mysql自带语法CONCAT(string1,string2,…),此处是直接把string1和string2等等的字符串拼接起来(无缝拼接哦) 说明:此方法在拼接的时候如果有一个值为NULL

  • Java字符串写入文件三种方式的实现

     Java字符串写入文件三种方式的实现 1.使用FileWriter String str="hello world!"; FileWriter writer; try { writer = new FileWriter("E:/token.txt"); writer.write(str); writer.flush(); writer.close(); } catch (IOException e) { e.printStackTrace(); } 2.使用Fil

  • Java字符串查找的三种方式

    indexof方法: 注解:indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置.如果没有找到子字符串,则返回-1. public class IndexOf{ public static void main(String[] args){ String s="李宏#王海#林巧#陆寻#唐梅"; String q="#"; //需要查找的字符串 String err="*"; //不存在的字符串 int i=0; for

  • Python写入MySQL数据库的三种方式详解

    目录 场景一:数据不需要频繁的写入mysql 场景二:数据是增量的,需要自动化并频繁写入mysql 方式一 方式二 总结 大家好,Python 读取数据自动写入 MySQL 数据库,这个需求在工作中是非常普遍的,主要涉及到 python 操作数据库,读写更新等,数据库可能是 mongodb. es,他们的处理思路都是相似的,只需要将操作数据库的语法更换即可. 本篇文章会给大家分享数据如何写入到 mysql,分为两个场景,三种方式. 场景一:数据不需要频繁的写入mysql 使用 navicat 工

  • 详解Ubuntu Server下启动/停止/重启MySQL数据库的三种方式

    Ubuntu Server下启动/停止/重启MySQL数据库的三种方式 系统环境:ubuntu server 12.10 x64(mysql为系统自带) 当我们需要修​​改MySQL的配置文件my.cnf(windows 下为 my.ini)来进行一些设置的时候,修改完之后我们需要重启MySQL. my.cnf文件位置为:/ect/mysql/my.cnf Waring:如果该文件配置错误,MySQL将无法启动. 下面介绍三种方式对MySQL进行启动/停止/重启操作: 启动mysql: 方式一:

  • MySQL查询字段实现字符串分割split功能的示例代码

    目录 问题背景 场景模拟 方法实现 SUBSTRING_INDEX LENGTH REPLACE SQL解析 问题背景 查询MySQL中用逗号分隔的字段[a,b,c]是否包含[a] 场景模拟 现有表[ec_logicplace],如下图所示: 要求判断数值[1]是否存在于表[ec_logicplace]中的[actual_place_id]中 方法实现 首先将[actual_place_id]字段用逗号拆分查询出来 通用模板为: SELECT SUBSTRING_INDEX( SUBSTRING

  • MySQL数据表添加字段的三种方式

    目录 在末尾添加字段 实例1 在开头添加字段 实例2 在中间位置添加字段 实例3 MySQL 数据表是由行和列构成的,通常把表的“列”称为字段(Field),把表的“行”称为记录(Record).随着业务的变化,可能需要在已有的表中添加新的字段. MySQL 允许在开头.中间和结尾处添加字段. 在末尾添加字段 一个完整的字段包括字段名.数据类型和约束条件.MySQL 添加字段的语法格式如下: ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件]

  • 深入剖析构建JSON字符串的三种方式(推荐)

    前言:JSON 是轻量级的数据交换格式,很常用,尤其是在使用 Ajax 时,在后台将数据封装为 JSON 字符串更是常见.之前在做项目的时候用过几种方式在后端将数组或 List 集合转换为 JSON 字符串,现在回想起来竟然又有些遗忘.现在来一个汇总,把这几种构建 JSON 字符串的方式彻底回忆起来. 笔记中提供了大量的代码示例,需要说明的是,大部分代码示例都是本人所敲代码并进行测试,不足之处,请大家指正~ 一.alibaba 的 Fastjson 1.Fastjson 是一个以 Java 语言

  • Python字符串拼接的几种方法整理

    Python字符串拼接的几种方法整理 第一种 通过加号(+)的形式 print('第一种方式通过加号形式连接 :' + 'love'+'Python' + '\n') 第二种 通过逗号(,)的形式 print('第二种方式通过逗号形式连接 :' + 'love', 'Python' + '\n') 第三种 直接连接 中间有无空格均可 print('第三种方式通过直接连接形式连接 (一) :' + 'love''Python' + '\n') print('第三种方式通过直接连接形式连接 (二)

随机推荐