MySQL 字段截取拼接

mysql · 浏览次数 : 0

小编点评

**前言** 在数据操作中,有时需要将数据库中的某些字段的值进行拼接或截取操作。为了方便地完成这些操作,我们可以使用一些函数来实现。 **拼接函数:concat()** `CONCAT()` 函数用于将两个或多个字符串拼接在一起。其语法如下: ```sql CONCAT(str1, str2, ..., strN) ``` 其中: * `str1`、`str2`、...、`strN` 是要拼接的字符串。 **截取函数:left()、right()** `LEFT()` 函数用于截取字符串的左侧指定数量的字符。其语法如下: ```sql LEFT(str, n) ``` 其中: * `str` 是要截取的字符串。 * `n` 是截取的字符数量。 `RIGHT()` 函数用于截取字符串的右侧指定数量的字符。其语法如下: ```sql RIGHT(str, n) ``` **字符串截取:substring()** `substring()` 函数用于从字符串中截取指定位置的字符。其语法如下: ```sql substring(str, pos, len) ``` 其中: * `str` 是要截取的字符串。 * `pos` 是开始截取的索引位置。 * `len` 是截取的字符数量。 **应用** 假设我们想要将数据库中的某一个字段的前 6 位替换成一个新的字符串,其余位置不变。可以使用以下 SQL 语句实现这个操作: ```sql UPDATE `aa10` SET AAA102 = CONCAT(\"111111\",substring(AAA102,7,6)) WHERE AAA102 like '111222%'; ``` **总结** 拼接函数 `CONCAT()` 用于将多个字符串拼接在一起。截取函数 `LEFT()` 和 `RIGHT()` 用于截取字符串的左侧或右侧指定数量的字符。字符串截取函数 `substring()` 用于从字符串中截取指定位置的字符。

正文

@


前言

请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i


提示:以下是本篇文章正文内容,下面案例可供参考

需求:

将数据库中的某一个字段的前6位替换成一个新的字符串,其它位置不变。

拼接函数:

CONCAT(A,B):将A和B拼接起来。

截取函数:

LEFT(str,3):截取str的前3位;

select left('sqlstudy.com', 3);
结果:| sql |

RIGHT(str,3):截取str的后3位;

select right('sqlstudy.com', 3);
结果 : | com |

字符串截取:substring(str, pos); substring(str, pos, len)

substring(str,4):从str的第4个字符位置开始截取,一直到结束。

select substring('sqlstudy.com', 4);
结果: | study.com |

substring(str,4,2):从str的第4个字符位置开始截取,只取两个字符。

select substring('sqlstudy.com', 4, 2);
结果 : | st |

substring(str,-4):从str倒数的第4个字符位置开始截取,一直到结束。

select substring('sqlstudy.com', -4);
结果 : | .com |

substring(str,-4,2):从str倒数的第4个字符位置开始截取,只取两个字符。

select substring('sqlstudy.com', -4, 2);
结果 : | .c |

PS:字符串截取长度不可以为负值。
字符串截取:substring_index(str,delim,count)

截取第二个 ‘.’ 之前的所有字符。

select substring_index('www.sqlstudy.com.cn', '.', 2);
结果: | www.sqlstudy |

截取第二个 ‘.’ (倒数)之后的所有字符。

 select substring_index('www.sqlstudy.com.cn', '.', -2);
结果: | com.cn |

如果在字符串中找不到 delim 参数指定的值,就返回整个字符串

 select substring_index('www.sqlstudy.com.cn', '.coc', 1);
结果: | www.sqlstudy.com.cn |

应用:
将数据库中的某一个字段的前6位替换成一个新的字符串,其它位置不变。

UPDATE `aa10` SET AAA102 = CONCAT("111111",substring(AAA102,7,6)) WHERE AAA102 like '111222%';

修改字段,字符串+截取最后一位/

#transfer_url:http://file/9ce2b963a6864927a49846fbe5c0cac6.amr
#拼接内容:/home/admin/sca/ccrecord/9ce2b963a6864927a49846fbe5c0cac6.amr

UPDATE  messages_transfer set down_file_path=CONCAT("/home/admin/sca/ccrecord/",substring_index(transfer_url, '/', -1))

总结

我是南国以南i记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!

参考链接

与MySQL 字段截取拼接相似的内容:

MySQL 字段截取拼接

@目录前言需求:拼接函数:截取函数:总结 前言 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i、 提示:以下是本篇文章正文内容,下面案例可供参考 需求: 将数据库中的某一个字段的前6位替换成一个新的字符串,其它位置不变。 拼接函数: CONCAT(A,B):将A和B拼接起来。 截取函数:

MySQL的字段数量以及长度限制

一、InnoDB行格式 行格式 紧凑的存储特性 增强的可变长度列存储 大型索引键前缀支持 压缩支持 支持的表空间类型 REDUNDANT N N N N system, file-per-table, general COMPACT Y N N N system, file-per-table, g

MySQL查询某个字段含有字母数字的值

1.正则表达式(REGEXP) 查询MySQL表中某个字段含有字母和数字的值,可以使用正则表达式(REGEXP)来匹配这样的模式。在MySQL中,正则表达式是一个强大的工具,可以用来搜索和匹配字符串中的特定模式。 假设我们有一个名为my_table的表,并且我们想要查询名为my_column的字段,

MySQL如何查询某个字段含有字母数字的值

在MySQL中,要查询某个字段含有字母和数字的值,可以使用正则表达式配合REGEXP操作符。以下是一个详细的示例,说明如何编写这样的查询。 假设我们有一个名为my_table的表,其中有一个名为my_column的字段,我们想要查询这个字段中含有字母和数字的值。 1.使用正则表达式 正则表达式[a-

[转帖]阿里规范 - 五、MySQL 数据库 - (一)建表规约 - 8 - 【强制】varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长 度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索 引效率。

字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索 引效率。 1、因为mysql 是行存储模式,所以会把整行读取出来。text 储存了大量的数据。读取时,占了大量的io。所以会十分的慢。 2、每行的数据过大 行溢出 InnoDB 会将一些大对象数据存放在数据页之外的 BLOB 页

MySQL自定义函数(User Define Function)开发实例——发送TCP/UDP消息

开发背景 当数据库中某个字段的值改为特定值时,实时发送消息通知到其他系统。 实现思路 监控数据库中特定字段值的变化可以用数据库触发器实现。还需要实现一个自定义的函数,接收一个字符串参数,然后将这个字符传通过udp消息发送到指定端口。 在触发器中执行这个自定义函数并在其他系统中监听指定端口的消息。从而

[转帖]MySQL 8.0.19 instant add column,亿级数据秒速增加字段

一、MySQL DDL 的方法 MySQL 在大型表上的 DDL 会带来耗时较久、负载较高、额外空间占用、MDL、主从同步延时等情况。需要特别引起重视,而MySQL 的 DDL 有很多种方法。 MySQL 本身自带三种方法,分别是:copy、inplace、instant。 copy 算法为最古老的

mysql大表修改工具: pt-online-schame-change

在表数据量很大的时候直接添加字段,以及其他表结构修改,会严重影响线上使用,而且耗费时间很长;使用这个工具可以很好的在线修改表结构。 好处: 降低主从延时的风险 可以限速、限资源,避免操作时MySQL负载过高 建议: 在业务低峰期做,将影响降到最低 直接原表修改缺点: 当表的数据量很大的时候,如果直接

MyBatis实现MySQL表字段及结构的自动增删

前言 在开发过程中,总会涉及到数据库表结构字段的增加或者删除,或者是索引的增加和减少,这个时候能把修改表结构字段这些工作都交给程序来进行,那能大大方便开发。正好有一个现成的工具可以在springboot里面实现这个流程。 介绍 mybatis-enhance-actable 上述是gitee链接。这

[转帖]MySQL联合索引(复合索引)

Mysql联合唯一索引添加相同数据插入报错 联合索引在两个字段都存在唯一,将报错。 1.添加联合索引 alter table "表名" add unique index(`字段1`,`字段2`) 2.此时如果在插入相同的数据会报错,可以使用 no duplicate key update 解决相同数