首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql怎么去掉字段前2位

在MySQL中去掉字段前2位,可以使用SUBSTRING函数结合UPDATE语句来实现。以下是一个示例:

假设我们有一个表example_table,其中有一个字段data,我们需要去掉该字段值的前两位:

代码语言:txt
复制
UPDATE example_table
SET data = SUBSTRING(data, 3);

这条语句会将example_table表中所有data字段的值更新为去掉前两位后的值。

原理

  • SUBSTRING(str, pos)函数用于返回字符串str从位置pos开始的子字符串。
  • 在这个例子中,SUBSTRING(data, 3)表示从data字段的第3个字符开始截取,直到字符串结束。

注意事项

  1. 数据类型:确保data字段的数据类型是字符串类型(如VARCHARTEXT等),否则SUBSTRING函数可能无法正常工作。
  2. 空字符串和短字符串:如果data字段的值长度小于3,SUBSTRING(data, 3)将返回空字符串。
  3. 备份数据:在执行更新操作之前,建议先备份数据,以防止意外修改。

应用场景

这种操作通常用于数据清洗或格式化,例如:

  • 去掉电话号码的前缀。
  • 去掉身份证号的前缀或校验位。
  • 去掉日期字符串的前缀(如去掉YYYY-MM-DD中的YYYY-)。

示例代码

以下是一个完整的示例,假设我们有一个表users,其中有一个字段phone,我们需要去掉该字段值的前两位:

代码语言:txt
复制
-- 创建示例表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    phone VARCHAR(20)
);

-- 插入示例数据
INSERT INTO users (phone) VALUES ('010-12345678'), ('021-87654321');

-- 去掉电话号码的前两位
UPDATE users
SET phone = SUBSTRING(phone, 3);

-- 查看更新后的数据
SELECT * FROM users;

参考链接

通过以上方法,你可以轻松地在MySQL中去掉字段的前两位。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql中如何修改字段类型_MySQL怎么修改字段类型?「建议收藏」

MySQL中,可以通过alter table语句来修改表中一个字段的数据类型。下面本篇文章就来带大家了解一下alter table语句,介绍如何修改字段类型,希望对大家有所帮助。...在MySQL中,alter table语句是用于在已有的表中添加、修改或删除列(字段)的。...1、添加字段(列)alter table 表名 add 字段名 数据类型 示例:在表 “Persons” 中添加一个名为 “Birthday” 的新列,数据类型为“date”alter table Persons...add Birthday date 说明:新列 “Birthday” 的类型是 date,可以存放日期 2、修改字段名alter table 表名 rename column A to B 3、修改字段类型...4、删除字段alter table 表名 drop column 字段名 示例:删除 “Person” 表中的 “Birthday” 列alter table Persons drop column Birthday

27.8K20
  • MySQL实战第十一讲-怎么给字符串字段加索引?

    同时,MySQL 是支持前缀索引的,也就是说,你可以定义字符串的一部分作为索引。默认地,如果你创建索引的语句不指定前缀长度,那么索引就会包含整个字符串。...从图中你可以看到,由于 email(6) 这个索引结构中每个邮箱字段都只取 6 个字节(即:zhangs),所以占用的空间会更小,这就是使用前缀索引的优势。...接下来,我们再看看下面这个语句,在这两个索引定义下分别是怎么执行的。...其他方式 对于类似于邮箱这样的字段来说,使用前缀索引的效果可能还不错。但是,遇到前缀的区分度不够好的情况时,我们要怎么办呢?...比如,我们国家的身份证号,一共 18 位,其中 6 位是地址码,所以同一个县的人的身份证号 6 位一般会是相同的。

    2.3K30

    MySQL深入学习第十一篇-怎么给字符串字段加索引?

    同时,MySQL 是支持前缀索引的,也就是说,你可以定义字符串的一部分作为索引。默认地,如果你创建索引的语句不指定前缀长度,那么索引就会包含整个字符串。...从图中你可以看到,由于 email(6) 这个索引结构中每个邮箱字段都只取 6 个字节(即:zhangs),所以占用的空间会更小,这就是使用前缀索引的优势。...接下来,我们再看看下面这个语句,在这两个索引定义下分别是怎么执行的。...其他方式 对于类似于邮箱这样的字段来说,使用前缀索引的效果可能还不错。但是,遇到前缀的区分度不够好的情况时,我们要怎么办呢?...比如,我们国家的身份证号,一共 18 位,其中 6 位是地址码,所以同一个县的人的身份证号 6 位一般会是相同的。

    1.9K10

    MySQL实战之全局锁和表锁:给表加个字段怎么有这么多阻碍

    如果时间顺序上是先备份账户余额表,然后用户购买,然后备份用户课程表,会怎么样呢? 图片 可以看到,这个备份结果里,用户A的数据状态是账户余额没有扣,但是用户课程表里面已经多了一门课。...业务的更新不只是增删改数据(DML),还有可能是加字段等修改表结构的操作(DDL)。不论哪种方法,一个库被全局锁上以后,你要对里面任何表做加字段,都是会被锁住的。...但是,即使没有被全局锁住,加字段也不是一帆风顺的,因为你还会碰到下面要结束的表级锁。 3.表级锁 MySQL里面表级别的锁有两种,一种是表锁,一种是元数据锁(meta data lock MDL)。...你肯定知道,给一个表加字段、或者修改字段、或者加索引,需要扫描全表的数据。在对大表操作的时候,你肯定会特别小心,以免对线上服务造成影响。而实际上,即使是小表,操作不慎也会出现问题。...如果你要变更的表是一个热点表,虽然数据量不大,但是上面的情况很频繁,而你不得不加个字段,你该怎么做呢? 这时候kill可能就不管用了,因为新的请求很快就来了。

    1.7K00

    MySQL实战第六讲 - 全局锁和表锁 :给表加个字段怎么有这么多阻碍?

    如果时间顺序上是先备份账户余额表 (u_account),然后用户购买,然后备份用户课程表 (u_course),会怎么样呢?...业务的更新不只是增删改数据(DML),还有可能是加字段等修改表结构的操作(DDL)。不论是哪种方法,一个库被全局锁上以后,你要对里面任何一个表做加字段操作,都是会被锁住的。...比如下面这个例子,我经常看到有人掉到这个坑里:给一个小表加个字段,导致整个库挂了。 你肯定知道,给一个表加字段,或者修改字段,或者加索引,需要扫描全表的数据。...如果你要变更的表是一个热点表,虽然数据量不大,但是上面的请求很频繁,而你不得不加个字段,你该怎么做呢? 这时候 kill 可能未必管用,因为新的请求马上就来了。...从“时刻 4”开始,mysqldump 释放了 MDL 读锁,现象:没有影响,备份拿到的是 DDL 的表结构。

    1.1K30

    MySQL深入学习第六篇 - 全局锁和表锁 :给表加个字段怎么有这么多阻碍?

    如果时间顺序上是先备份账户余额表 (u_account),然后用户购买,然后备份用户课程表 (u_course),会怎么样呢?你可以看一下这个图: ?...业务的更新不只是增删改数据(DML),还有可能是加字段等修改表结构的操作(DDL)。不论是哪种方法,一个库被全局锁上以后,你要对里面任何一个表做加字段操作,都是会被锁住的。...比如下面这个例子,我经常看到有人掉到这个坑里:给一个小表加个字段,导致整个库挂了。 你肯定知道,给一个表加字段,或者修改字段,或者加索引,需要扫描全表的数据。...如果你要变更的表是一个热点表,虽然数据量不大,但是上面的请求很频繁,而你不得不加个字段,你该怎么做呢? 这时候 kill 可能未必管用,因为新的请求马上就来了。...从“时刻 4”开始,mysqldump 释放了 MDL 读锁,现象:没有影响,备份拿到的是 DDL 的表结构。

    85710

    Mysql去除字符串中的特殊字符及varchar转int

    场景描述 Mysql中有varchar类型字段,并且为:123,456 形式,需要对其进行排序,并根据条件筛选出5条 模拟表数据 表名:table_a t_id(int) t_year(int) t_value...(varchar) 1 2019 123,456 Mysql去除字符串中的特殊符号 使用到的函数:REPLACE(str,from_str,to_str) 用法 str:需要操作的字段 from_str...:字段中的特殊符号 to_str:需要替换成什么样 这里把t_value值为:123,456中的”,” 去掉,也就是替换成空。...) 用法 Filed:为需要转换的字段名 这里需要先把t_value中的”,”去掉然后再转成int SQL: SELECT CAST(REPLACE(t_value,",","") AS UNSIGNED...INTEGER) FROM table_a; 总体实现 需求:对table_a表中的t_year=2019的数据按照t_value字段从大到小排序并且只去5条 SQL: SELECT * FROM

    3.5K20

    达梦数据库适配问题

    达梦数据库适配采坑记 达梦数据库适配采坑记 问题一 问题描述: 字段内容超长错误: 问题详解: 达梦数据库和Oracle同样,对字段的长度有严格的规范,当然Mysql也是有的,但是默认是不启用的,哪怕超出了...,不识别[`]符号 问题详解: 在Mysql中[`]符号是为了防止和Mysql的系统字段冲突,标识这个一个普通字段,但是在达梦数据库中,不识别这个符号; 解决方案: 方案一: 采用MyBatis的拦截器对...,所以报错 解决方案: 方案一: 修改代码,去掉Sql中查询的不是分组的字段,通过代码二次查询实现; 问题四: 问题描述: 问题详解: 解决方案: 方案一: 案例: 问题五: 问题描述: on duplicate...key update语法分析错误 问题详解: 属于Mysql专用语法,在Oracle和达梦中是不支持的 解决方案: 方案一: 使用Merge修改(不推荐) 案例: 修改: insert into sys_logininfo...去掉concat 样例: 修改: select concat(aaa) as a from aa; 修改后: select aaa as a from aa; 作者:彼岸舞 时间:2020\06\23

    2.2K10

    MySQL常用指令

    首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名可以有空格也可以没有空格,但是密码必须没有空格,否则让你重新输入密码。...有些网友问到,连接以后怎么退出。其实,不用退出来,use 数据库后,使用show databases就能查询所有数据库,如果想跳到其他数据库,用 use 其他数据库名字 就可以了。...* from MyClass; 2)、查询几行数据 例如:查看表 MyClass 中2行数据 mysql> select * from MyClass order by id limit 0,2;...(以上命令已经调试,你只要将//的注释去掉即可使用)。 2、或者进入命令行后使用 mysql> source c:\school.sql; 也可以将school.sql文件导入数据库中。...(左边)的所有空格 select ltrim(' 我爱中国 '); rtrim 作用:去掉结束处(右边)的所有空格 select rtrim(' 我爱中国 '); trim 作用:去掉开始和结束处

    1.7K20

    MySQL replace用法简介

    今天在工作的过程中碰到一个问题,要把数据库中某个列的所有值中含有"ceshi.test.com"的字符去掉,本来可以写个脚本,把所有的值都取出再导入进行处理,但是那样就效率非常低了,想到看试下能不能直接在...MySQL中用SQL语句直接来处理,就想到mysql的replace函数。...mysql replace用法 1. replace into replace into table (id,name) values('1','aa'),('2','bb'); 此语句的作用是向表...2.replace(object,search,replace) UPDATE 表名 SET 字段名= REPLACE( 字段名, '替换关键字', '替换后关键字'); 如下: ?...='id'; 对几位关键字替换方法: UPDATE 表名 SET 字段名= REPLACE( 替换字段, '替换关键字', '替换后关键字' ) WHERE 字段名 REGEXP "替换字段

    3.8K90

    MYSQL数据库设计的一些小技巧

    中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录,需要检查这条记录是否已经存在,只有当记录不 存在时才执行插入操作,本文介绍的就是这个问题的解决方案. insert into 表名...id=ss2.id and ss1.name='alex' #二张表ss1和ss2相同的id中内容有alex的内容删除 高级查询 常用查询函数 concat(字符连接) distinct(去掉重复数据...怎么样进行 MYSQL 备份 MYSQL 的备份可用命令mysqldump ,使用方法很简单, $ mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 >路径/备份名.bak...什么情况下会导致 MYSQL 数据库损坏和怎么修复 MYSQL mysql 正在运行的时候,服务器突然断电或者直接按reset键重启,硬盘空间不够,导致数据写不进去,也很有可能导致数据表损坏,...设置进入时的默认编码 mysql -uroot -p --default-character-set=utf8 问题:我创建了一个表来存放客户信息,我知道可以用 insert 语句插入信息到表中,但是怎么样才能保证不会插入重复的记录呢

    1.2K50

    看来,MySQL next-key lock 的 bug 并没有被修复!

    ,肯定会在 索引 uniq_a 和 主键索引上都加上锁; 字段 a 具有唯一性,但是数据 a = 111 不存在,会一直查,查到 115 区间; 所以会加索引 uniq_a 和 主键索引的间隙锁。...分析 data_locks: 怎么会对非主键唯一索引的 110 加了锁?LOCK_MODE 还是 X,如果加了行锁我还能理解。 怎么会对非主键唯一索引的 115 加了锁?...mysql> begin; select * from t where a > 110 and a < 114 for update; 诶??? 奇了怪了! 我唯一能想到的原因就是开后闭了。...mysql> begin; select id from t where a >= 110 and a < 115 for update; 按照刚才的思路,开后闭: 锁住主键索引 110 的区间,115...把等号去掉 15 是锁住的。 感觉脑袋完全不够用啊。重点是我没有理解怎么主键还是开后开,这里就开后闭了? 难道我在这里试试那个 bug? 啪啪打脸啊!

    86210

    Mysql的常用函数

    每天早上七点三十,准时推送干货 在开发中,数据库的种类千奇百怪,有各种,比如早期的 SQLServer,Mysql,Oracle,现在还有许多国产的数据库,但是有不少开发还是使用的 Mysql,但是对于...Mysql 中的各种各样的函数,用的却是没有那么多的,今天了不起就来带着大家一起看看这个 Mysql 的各种常用的函数。...这个时候就有人想问了,如果我只想去掉开头的,或者只想去掉结尾的空格怎么办?...LTRIM(str) RTRIM(str) 第一个是去掉开始的空格,第二个是去掉结尾的空格,这个了不起都不用给大家演示,一个是去掉左边的,一个是去掉右边的, 没有R 没有L 的 则是两边都去掉。...group_concat([distinct] 字段名 [order by 排序字段 asc/desc] [separator '分隔符']) 注意: 使用distinct可以排除重复值; 如果需要对结果中的值进行排序

    18910
    领券