当前位置: 首页 > article >正文

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

目录

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

背景

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

查询所有表名

通过查询表information_schema.TABLES 获得

SELECT
	TABLE_NAME AS '名称',
	TABLE_COMMENT AS '表注释',
	AUTO_INCREMENT AS '下一个自增长值'
FROM
	information_schema.TABLES 
WHERE
	table_schema = '数据库名';

在这里插入图片描述

查询表的所有字段

SELECT
	COLUMN_NAME AS '列名',
	DATA_TYPE AS '类型',
	COLUMN_COMMENT AS '列注释',
	COLUMN_KEY,
	EXTRA,
	CHARACTER_MAXIMUM_LENGTH,
	IS_NULLABLE,
	COLUMN_DEFAULT 
FROM
	information_schema.COLUMNS 
WHERE
	table_schema = '数据库名' 
	AND table_name = '表名';

在这里插入图片描述

过虑特征字段

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

SELECT
	cols.TABLE_NAME AS '表名',
	COLUMN_NAME AS '列名',
	COLUMN_COMMENT AS '列注释' 
FROM
	information_schema.COLUMNS cols 
WHERE
	TABLE_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

SELECT
	CONCAT('UPDATE ',cols.TABLE_NAME,' SET ',cols.COLUMN_NAME,' = ','REPLACE(',cols.COLUMN_NAME,',',"'hw.hongweisoft.com'",',',"'dev.dazesoft.cn'",')',';') AS '更新SQL'
FROM
	INFORMATION_SCHEMA.COLUMNS cols 
WHERE
	TABLE_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.kler.cn/a/317869.html

相关文章:

  • 从0开始学习Linux——文件管理
  • Microsoft 365 Exchange如何设置可信发件IP白名单
  • 深入理解BERT模型配置:BertConfig类详解
  • 类别变量分析——卡方独立性检验卡方拟合优度检验
  • 《DiffusionDet: Diffusion Model for Object Detection》ICCV2023
  • 一文详解java的数据类型
  • 虚拟机centos_7 配置教程(镜像源、配置centos、静态ip地址、Finalshell远程操控使用)
  • 目标检测基本知识
  • 线性dp 总结详解
  • Vue3:$refs和$parent实现组件通信
  • 【树莓派】python3程序获取CPU和GPU温度
  • 无人机之战斗机的详解!
  • 单片机学到什么程度才可以去工作?
  • WebGL纹理与材质
  • 【C++二叉树】236.二叉树的最近公共祖先
  • 使用three.js+vue3完成无人机上下运动
  • 汽车售后诊断ECU参数分析
  • 寄宿制学校自闭症教育:为每个孩子创造奇迹
  • spring boot项目对接人大金仓
  • 线性代数学习笔记~
  • 初识JavaScript
  • 【图像压缩与重构】基于BP神经网络
  • 新版torch_geometric不存在uniform、maybe_num_nodes函数问题(Prune4ED论文报错解决)
  • python request库的使用
  • 深度学习领域相关的专业术语(附带音标解释)
  • EtherCAT转Profient协议网关简述