SQL语句批量去除、替换掉某列(字段)中包含的某个字符串,一并总结下列的增删改操作

您所在的位置:网站首页 筛选里面的内容怎么批量替换 SQL语句批量去除、替换掉某列(字段)中包含的某个字符串,一并总结下列的增删改操作

SQL语句批量去除、替换掉某列(字段)中包含的某个字符串,一并总结下列的增删改操作

2024-07-15 09:44:53| 来源: 网络整理| 查看: 265

原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重。

前言

通过本篇,你将学到MySQL数据库关于【列】的操作,包括【新增,移动,删除,清空数据,数据替换】等,着急的朋友请直接看【正文】部分。

2021年的第一场沙尘暴,比以往时候来得更晚了一些。虽然天气很糟糕,但是我纸醉金迷生活却丝毫不受影响。今晚约了吃饭,但是碰巧下午需要更版,所以此刻的DBA正在更新SQL,可我的内心毫无波澜,对我来说:发版就是下班。

‘“老师,预演环境出问题了,赶紧看一下!!”,WTF,怎么可能(程序员的第一反应都是如此,太真实了!)。

中间省略10分钟的查日志时间...

原来是运维私自下架了首页“我的店铺”功能,但是用户“最近使用”记录里依然存在该ID,导致这部分用户查询“最近使用”数据失败引发的血案。代码逻辑不够严谨是一定的,不能全怪运维工作疏忽不认真看操作手册。当下最要紧的就是上线,我分析了一下,提出了快速解决问题的方案:

今天,先用SQL处理异常数据,在用户“最近使用”表,去掉"recent_function"字段中的“我的店铺”功能ID,确保当前版本快速上线;后续,记录问题,优化代码逻辑,避免此类问题再次出现,后端代码在下一版本中上线即可。

描述一下今天的具体工作:去掉recent_function字段中的“17”字符串(“我的店铺”功能对应的就是“17”),同时不能破坏已有的用户数据,因为是生产环境。

因为不是什么大事儿,交给我任劳任怨的大弟子解决吧,我今晚有约要先走了。打卡下班,走之前再来关照下我的关门大弟子,我勒个去,真是“不看不知道,一看下一跳”,这家伙居然在一条条的复制SQL??

update user_function set recent_function = '11,12,13'  WHERE id = 100; update user_function set recent_function = '11,15,18,16'  WHERE id = 101; update user_function set recent_function = '19,20,21,22'  WHERE id = 102; 

。。。

“你告诉我,受影响的用户数据有多少?”,大弟子乐观的跟我讲“还行,400多条,一会就搞完了,师傅先走”,我上去就呼他一巴掌,敲着电脑恼屏幕质问他“400条?如果是1W条数据,你还这么搞??”,看来,是时候再展现一下我的MySQL功底了:

update user_function set recent_function = replace(recent_function, '17', '') where recent_function LIKE '%17%';

写下一句SQL,潇洒离开,挥一挥衣袖,不带走一片云彩,在众人钦佩的目光中打卡,下班。

正文

扯了不少写作的初衷,本篇就把【MySQL】数据库关于【列】的操作做个总结,包含【标题】(和前言)中提到的问题,以MySQL为例:

以下案例假设 —— 表名:'table_name',待处理的列名: 'column_name',待处理的字符串:'str_1',替换为:'str_2'(可自定义)

1. 替换字符

使用函数REPLACE(s,s1,s2),将字符串s中的 s1替换成s2,可以实现批量的列操作,同时可以保留原始数据,非常适合我遇到的场景。

update 表 set 列 = replace(列, 待替换的字符串, 替换为的字符串) where 列 like '%待替换的字符串%';; update table_name set column_name = replace(column_name, str_1 , str_2) where column_name like '%str_1%'; 2. 新增

新增的列默认是在表的最后,但是也可以使用 first、after关键字来声明具体位置。

ALTER TABLE 语句用于在已有的表中添加、修改或删除列

1. 新增列默认是在表的最后 alter table 表名 add 列名 列属性; alter table table_name add column_name tinyint unsigned not null default 100; —— default 100(设置列的默认值) 2. 用first,声明新增的列在最前面 alter table 表名 add 列名 列属性 first; alter table table_name add column_name int primary key auto_increment first; —— primary key auto_increment(设为主键,并自动增加) 3.用after,声明新增的列在哪个字段的后面 alter table 表名 add 列名 列属性 after 另一个已存在的列名; alter table table_name add column_name tinyint unsigned not null default 100 after other_exist_column_name; 3. 修改 change:既可以只修改列属性——列名和原来的相同但属性不同,也可以同时修改列名和属性——列名和和属性都不同;modify:只能用于字段类型的修改 1. change可以修改名称和属性 alter table 表名 change 被修改的列名 新的列名 新列的属性; alter table table_name change column_name column_name smallint unsigned not null default 100; alter table table_name change column_name other_column_name int unsigned not null default 110; 2. alter 只能用于修改字段类型 alter table 表名 modify 列名 列类型; alter table table_name modify column_name int; 4. 删除/清空

使用update清空某一列数据时,注意该列的属性是不为null才可以,否则可以用''替代。

1. 删除某列(机构上删除) alter table 表名 drop column 列名; alter table table_name drop column column_name; 2.清空某列(删除改列所有数据) update 表名 set 列名 = ''; update table_name set column_name = null;

持续更新...

我是「IT无知君」,您的点赞、评论和关注,是我创作的动力源泉。 学无止境,气有浩然,让我们一起加油,天涯未远,江湖有缘再见!!



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭