mysql如何替换数据库所有表中某些字段含有的特定值

news/2024/11/17 23:37:47/

目录

  • 背景
  • 查询所有表名
  • 查询表的所有字段
  • 过虑特征字段
  • 替换字段中含有的特定值

背景

公司的测试域名更换了,导致存放在数据库中的域名也要跟着替换,当然把域名存放在数据库表中是不科学的,不建议这样做,但公司的同事就这样做了,分配我把每个数据库中的域名都换了,想了很久,后面得到了一个比较完美的解决方案,下面我们就一起来学习学习吧。

查询所有表名

通过查询表information_schema.TABLES 获得

SELECTTABLE_NAME AS '名称',TABLE_COMMENT AS '表注释',AUTO_INCREMENT AS '下一个自增长值'
FROMinformation_schema.TABLES 
WHEREtable_schema = '数据库名';

在这里插入图片描述

查询表的所有字段

SELECTCOLUMN_NAME AS '列名',DATA_TYPE AS '类型',COLUMN_COMMENT AS '列注释',COLUMN_KEY,EXTRA,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE,COLUMN_DEFAULT 
FROMinformation_schema.COLUMNS 
WHEREtable_schema = '数据库名' AND table_name = '表名';

在这里插入图片描述

过虑特征字段

通过where过虑要替换的字段名

SELECTcols.TABLE_NAME AS '表名',COLUMN_NAME AS '列名',COLUMN_COMMENT AS '列注释' 
FROMinformation_schema.COLUMNS cols 
WHERETABLE_SCHEMA = '数据库名' AND (cols.COLUMN_NAME LIKE '%url%' OR cols.COLUMN_NAME LIKE '%adress%' OR cols.COLUMN_NAME LIKE '%file%' OR cols.COLUMN_NAME LIKE '%image%' OR cols.COLUMN_NAME LIKE '%img%' OR cols.COLUMN_COMMENT LIKE '%图片%' OR cols.COLUMN_COMMENT LIKE '%文件%' OR cols.COLUMN_COMMENT LIKE '%地址%' );

在这里插入图片描述

替换字段中含有的特定值

用到的函数:CONCAT,REPLACE
例子中将hw.hongweisoft.comu替换成dev.dazesoft.cn

SELECTCONCAT('UPDATE ',cols.TABLE_NAME,' SET ',cols.COLUMN_NAME,' = ','REPLACE(',cols.COLUMN_NAME,',',"'hw.hongweisoft.com'",',',"'dev.dazesoft.cn'",')',';') AS '更新SQL'
FROMINFORMATION_SCHEMA.COLUMNS cols 
WHERETABLE_SCHEMA = '数据库名' AND (cols.COLUMN_NAME LIKE '%url%' OR cols.COLUMN_NAME LIKE '%adress%' OR cols.COLUMN_NAME LIKE '%file%' OR cols.COLUMN_NAME LIKE '%image%' OR cols.COLUMN_NAME LIKE '%img%' OR cols.COLUMN_COMMENT LIKE '%图片%' OR cols.COLUMN_COMMENT LIKE '%文件%' OR cols.COLUMN_COMMENT LIKE '%地址%' );

在这里插入图片描述
替换的sql语句:

UPDATE buyer_invoice SET address = REPLACE(address,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE buyer_user_auth SET address = REPLACE(address,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE buyer_user_auth SET company_address = REPLACE(company_address,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE buyer_user_auth SET operate_address = REPLACE(operate_address,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE cere_activity_sign SET qr_image = REPLACE(qr_image,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE cere_address_forbid_config SET forbid_type = REPLACE(forbid_type,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE cere_address_forbid_config SET address = REPLACE(address,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE cere_after_dilever SET image = REPLACE(image,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE cere_after_product SET image = REPLACE(image,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE cere_buyer_receive SET receive_id = REPLACE(receive_id,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE cere_buyer_receive SET receive_adress = REPLACE(receive_adress,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE cere_buyer_receive SET address = REPLACE(address,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE cere_buyer_receive SET label = REPLACE(label,'hw.hongweisoft.com','dev.dazesoft.cn');
UPDATE cere_buyer_user SET head_image = REPLACE(head_image,'hw.hongweisoft.com','dev.dazesoft.cn');

最后执行一下就可以了


http://www.ppmy.cn/news/1531900.html

相关文章

CSS 的背景样式

1.1 背景颜色 1.2 背景图片 1.3 背景平铺 1.4 背景图片位置 1.4.1 方位名词 1.4.2 精确单位 1.4.3 混合单位 1.5 背景图像固定 1.6 背景复合写法 1.7 背景色半透明 1.8 总结

UE学习篇ContentExample解读------Blueprints Advanced-下

文章目录 总览描述批次阅览2.1 Timeline animation2.2 Actor tracking2.3 Button Trigger using a blueprint interface2.4 Opening door with trigger2.5 Child Blueprints 概念总结致谢: 总览描述 打开关卡后,引入眼帘的就是针对关卡的总体性文字描述&…

抖店电商怎么使用云账户解决资金提现?

多平台流水资金统一进入电商客户在银行的资金监管专户中,直接向各供应商、各经销商分账结算 可将某淘、某猫、某东、拼某某、抖某等多家电商平台的结算资金统一结算到银行专用监管专户,在我们的系统中完成与供应链厂商的分账和结算,实现了资…

Redis:持久化

1. Redis持久化机制 Redis 支持 RDB 和 AOF 两种持久化机制,持久化功能有效地避免因进程退出造成数据丢失问题, 当下次重启时利⽤之前持久化的文件即可实现数据恢复。 2.RDB RDB 持久化是把当前进程数据⽣成快照保存到硬盘的过程,触发 RDB…

kubernets资源相关内容介绍

文章目录 kubernets资源基本结构示例:Deployment资源配置文件解析常见资源类型复杂配置总结 各种资源之间的关系1. Pods与其他资源的关系2. Services与其他资源的关系3. Deployments与其他资源的关系4. StatefulSets与Pods5. DaemonSets与Pods6. ConfigMaps、Secret…

vmware 里 centos7 扩展 /dev/mapper/centos-root 容量

虚拟机安装centos7.9 的时候分配了10G磁盘,后来不够用了。 第一步 在虚拟机设置里,硬盘里扩展 磁盘容量,这里只能往大扩,不允许往小设置。 第二步,centos7 里查看现有分区情况 [rootvm159 ~]# df -h 文件系统 …

Flutter InAppWebView 路由导航处理

flutter InAppWebView路由导航处理,有以下两种处理方案: H5层控制路由,H5拥有自己的路由,当返回到跟路由root时,此时点击跟节点,通过jsbridge调用flutter提供的方法来关闭当前widget,flutter关…

【CSS in Depth 2 精译_042】6.4 CSS 中的堆叠上下文与 z-index(下)——深入理解堆叠上下文

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结)第二章 相对单位(已完结)第三章 文档流与盒模型(已完结)第四章 Flexbox 布局(已…