mysql中的实现字段或字符串拼接的三种方式

这篇具有很好参考价值的文章主要介绍了mysql中的实现字段或字符串拼接的三种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、CONCAT函数

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

concat函数官方介绍

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

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

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

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

执行结果如下:

mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档
SELECT CONCAT(字符串1,字符串2,字符串3,...) ;

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

执行结果如下:

mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档

1.2、拼接空(NULL)字段

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

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

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

执行结果如下:

mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档

二、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 ;

执行结果如下:

mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档
mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档

2.2、拼接空(NULL)字段

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

执行结果如下:

mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档

三、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;

执行结果如下:

mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档

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

3.2.1、自定义分隔符

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

-- 示例:
SELECT GROUP_CONCAT(genre SEPARATOR ';') from movies;
mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档

3.2.2、将整数转为字符串

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

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

执行结果如下:

mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档

3.2.3、多字段拼接

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

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

执行结果如下:

mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档

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;

执行后结果如下:

mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档

3.3、group_concat的限制和设置

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

默认是1024字节即1k;

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

执行结果如下:

mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档

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

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

执行结果如下:

mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档

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

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

执行结果如下:文章来源地址https://www.toymoban.com/news/detail-835082.html

mysql 字符串拼接,# SQL,网络安全,mysql,数据库,sql,Powered by 金山文档

到了这里,关于mysql中的实现字段或字符串拼接的三种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 超大字符串mysql存储字段选择

    如果一个字符串超过了MySQL VARCHAR的最大长度限制,可以考虑使用以下数据类型: MySQL TEXT :TEXT类型可以存储最大长度为65,535个字符(约64KB)的文本。与VARCHAR不同的是,TEXT类型不需要预留存储空间,并且在存储时会自动进行压缩。 MySQL MEDIUMTEXT :MEDIUMTEXT类型可以存储最大长

    2024年02月11日
    浏览(48)
  • HIVE SQL实现分组字符串拼接concat

    在Mysql中可以通过 group_concat() 函数实现分组字符串拼接,在HIVE SQL中可以使用 concat_ws()+collect_set()/collect_list() 函数实现相同的效果。 实例: a b c 2014 B 9 2015 A 8 2014 A 10 2015 B 7 2014 B 6 1.concat_ws+collect_list 非去重拼接 查询结果: a col_b col_c 2014 B-A-B 9-10-6 2015 A-B 8-7 2.concat_ws+collect_se

    2024年02月12日
    浏览(44)
  • MySQL实战解析底层---怎么给字符串字段加索引

    目录 所谓前缀索引 前缀索引对覆盖索引的影响 其他方式 所谓前缀索引 现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是今天要讨论的问题 假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的 由于要使用邮箱登录,所以业务

    2023年04月09日
    浏览(71)
  • oracle连表查询in后边跟另一张表中的字符串字段

    今天在做通过in进行连表查询的时候发现以下问题记录下 我的需求是A,B两张表连接查询,A中有一个FOOD_TYPES字段 存的值类型为1,2,3 B表中的字段是FOOD_TYPE 存的是单个数字字符串 我需要where b.food_type in a.food_types 但是无论怎么写都无法实现这样的查询 最终使用了 b.food_type in

    2024年02月13日
    浏览(47)
  • 297.【华为OD机试】拼接url(字符串处理—Java&Python&C++&JS实现)

    🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(JavaPythonC++JS分别实现),详细代码讲解,助你深入学习,深度掌握!

    2024年04月12日
    浏览(51)
  • 判断字符串是否为回文的三种常用编程语言实现

    引言:回文是一种具有镜像对称性的字符串,即它从左到右读和从右到左读是相同的。回文可以在文学、语言学、数学、计算机科学等领域中得到广泛应用。在计算机科学中,判断一个字符串是否为回文是一项基本的算法挑战。在本文中,我们将介绍三种常见的编程语言中用

    2024年02月03日
    浏览(54)
  • Python_字符串(字符串拼接:join() 与 +拼接符两种方法效率对比)

    运算结果如下图所示: 显然,在循环1000000次的前提下,字符的join()运算效率远远高于使用+拼接符的运算。 其根本逻辑在于: 对于简单的+运算符,字符串每次相加都会创建一个新的对象。较为费时。 而对于join(),其用于列表内字符串的相加,列表中字符串的相加并不会创建

    2023年04月24日
    浏览(56)
  • shell 拼接字符串,出现后面的字符串覆盖前面的字符串问题

    shell 拼接字符串语法很简单两个参数并排前后写上接口,如下 str1=www str2=bbb s t r 1 str1 s t r 1 str2 的结果未 wwwbbb 有时会出现如下问题: 在拼接字符串的时候,后面的字符串将前面的字符串覆盖了。 shell的内容如下: #!/bin/bash date_str=“ date +%Y%m%d ” echo $date_str python_file_name=\\\" 1

    2024年02月09日
    浏览(54)
  • JS中字符串切割为数组/数组拼接为字符串

    (1)语法格式: 其中所选分隔符使用双引号(“”)或者单引号(‘’)括起来; 所生成的数组会存放于前面定义的数组变量中。 (2)样例: JS代码: 运行结果: (3)其他用法: ①当所选分隔符为空时,返回的数组即将每个字符分割出来: JS代码: 运行结果: ②分隔

    2024年02月12日
    浏览(58)
  • C++ 字符串拼接

    第一种方法直接是字符串之间相加 第二种方法使用append append 可以设置参数  例如 append(“s1”,3) 这就是把s1前三位拼接 例如下面的就是把adbc的前2位,也就是ab 拼接到s1 上面 打印结果   append(s1,2,4)设置2个参数,就是从第2位开始后面的四位拼接 下面的就是abcdefg从第

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包