广告
返回顶部
首页 > 资讯 > 数据库 >MySQL全局遍历替换特征字符串如何实现
  • 102
分享到

MySQL全局遍历替换特征字符串如何实现

2023-07-05 16:07:25 102人浏览 薄情痞子
摘要

这篇“MySQL全局遍历替换特征字符串如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Mysql全局遍历替换特征字符串

这篇“MySQL全局遍历替换特征字符串如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Mysql全局遍历替换特征字符串如何实现”文章吧。

需求:将一个mysql实例(如10.10.10.1:3306)范围内所有字段数据中的 .letssing.net 替换为 .kaixinvv.com。

实现:

1. 确定替换规则

replace .letssing.net/ -> .kaixinvv.com/  where column like (%Http://%.letssing.net/% or %https://%.letssing.net/%)

2. 找出实例中所有符合特征的库表字段

(1)生成查询sql语句

$cat find_db_table_column.shmysql -uroot -p123456 -h20.10.10.1 -P3306 -e "select concat('select ','''',t1.TABLE_SCHEMA, '''',', ','''',t1.TABLE_NAME, '''',', ', '''',t1.COLUMN_NAME,'''','                  from ', t1.TABLE_SCHEMA,'.',t1.TABLE_NAME,' where \`',t1.COLUMN_NAME,'\` like \'%://%.letssing.net/%\' limit 1;')   from infORMation_schema.columns t1, information_schema.tables t2  where t1.DATA_TYPE in ('varchar','longtext','text','mediumtext','char')    and t1.TABLE_SCHEMA not in ('information_schema','mysql','performance_schema','sys')    and (t2.data_length+t2.index_length)/1024/1024/1024 < 1    and t2.table_name not like '%log%' and t2.table_name not like '%idempotent%'    and t1.table_schema= t2.table_schema    and t1.table_name= t2.table_name  order by t1.TABLE_SCHEMA, t1.TABLE_name, t1.column_name;" -N > query.sql

说明: 

  • mysql命令行执行查询,将查询结果输出到文件,-N参数用于去掉表头。

  • 通过查询数据字典视图 information_schema.columns 和 information_schema.tables 生成查询所有包含特征字符串的库表字段的SQL语句。查询条件为:只查询字符串类型的字段;不查询系统库表;只查询1G以下的小表;不查询某些特殊用途(日志、幂等性)的超大表。

(2)执行查询并生成结果文件

mysql -uroot -p123456 -h20.10.10.1 -P3306 -N < query.sql > result.txt

result.txt文件内容示例:
db1    table1    column1
db1    table1    column2
db2    table2    column1
db2    table2    column2

3. 对上一步每个库表字段,查询n条特征数据,用以人工采样确认

(1)导入库表字段数据

mysql -uwxy -p -h227.0.0.1 -p123456 -P3306 --local-infile -Ddomain -e "truncate table t1;load data local infile '/home/mysql/domain_name/rule/result.txt' into table t1(dbname,tablename,columnname);"

说明:将前一步生成的结果文件导入一个表中,用于下一步生成查询SQL语句。

(2)生成查询数据的SQL语句

mysql -uwxy -p -h227.0.0.1 -p123456 -P3306 -Ddomain -e "select concat('select ',instance,',''',dbname,''',''',tablename,''',\`',columnname,'\` from ',dbname,'.',tablename, ' where \`',columnname,'\` like \'%://%.letssing.net/%\' limit 5;') from t1 order by instance,dbname,tablename;" -N > query_domain.sql

说明:这里对于每个符合条件的库表字段,查询出5条数据用于人工确认。

(3)执行查询并生成结果文件

mysql -uroot -p123456 -h20.10.10.1 -P3306 < query_domain.sql > result_domain.txt

result_domain.txt文件内容示例:
db1    table1    column1
db1    table1    http://txcdn-song-mvbox-cn.letssing.net/mka/16/90461116-0.mka
db1    table1    http://txcdn-song-mvbox-cn.letssing.net/mka/16/90461116-0.mka
db1    table1    column2
db1    table1    http://txcdn-song-mvbox-cn.letssing.net/ksc/90/16/90461116-0.ksc
db1    table1    http://txcdn-song-mvbox-cn.letssing.net/ksc/90/16/90461116-0.ksc
db2    table2    column1
db2    table2    http://txcdn-song-mvbox-cn.letssing.net/mka/16/90461116-0.mka
db2    table2    http://txcdn-song-mvbox-cn.letssing.net/mka/16/90461116-0.mka
db2    table2    column2
db2    table2    http://txcdn-song-mvbox-cn.letssing.net/ksc/90/16/90461116-0.ksc
db2    table1    http://txcdn-song-mvbox-cn.letssing.net/ksc/90/16/90461116-0.ksc

4. 更新特征域名数据

(1)生成字符串替换的更新SQL语句

mysql -uwxy -p -h227.0.0.1 -p123456 -P3306 --local-infile -Ddomain -e "select concat('update ',dbname,'.',tablename,' set \`',columnname,'\` = ','replace(\`',columnname,'\`,','\'.letssing.net/\',\'.kaixinvv.com/\')',' where \`',columnname,'\` like \'%http://%.letssing.net/%\' or \`', columnname,'\` like \'%https://%.letssing.net/%\';')  from t1 where instance = 1 order by instance,dbname,tablename;" -N > update.sql

(2)执行更新

mysql -uroot -p123456 -h20.10.10.1 -P3306 < update.sql

以上就是关于“MySQL全局遍历替换特征字符串如何实现”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL全局遍历替换特征字符串如何实现

本文链接: https://www.lsjlt.com/news/353128.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL全局遍历替换特征字符串如何实现
    这篇“MySQL全局遍历替换特征字符串如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL全局遍历替换特征字符串...
    99+
    2023-07-05
  • MySQL全局遍历替换特征字符串的实现方法
    目录1. 确定替换规则2. 找出实例中所有符合特征的库表字段3. 对上一步每个库表字段,查询n条特征数据,用以人工采样确认4. 更新特征域名数据需求:将一个mysql实例(如10.10.10.1:3306)范围内所有字段...
    99+
    2023-03-24
    MySQL全局遍历替换特征字符串 MySQL 替换特征字符串
  • jQuery如何实现字符串全部替换
    这篇文章主要为大家展示了“jQuery如何实现字符串全部替换”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现字符串全部替换”这篇文章吧。大家都...
    99+
    2022-10-19
  • shell如何实现字符串替换
    小编给大家分享一下shell如何实现字符串替换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!字符串替换${string//pat...
    99+
    2022-10-19
  • C语言如何实现字符串替换
    在C语言中可以通过循环遍历字符串的每个字符,然后判断是否需要替换,如果需要替换则使用新的字符替换原字符。下面是一个示例代码,实现了字...
    99+
    2023-08-24
    C语言
  • javascript中如何实现字符串替换星号
    这篇文章给大家分享的是有关javascript中如何实现字符串替换星号的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 javascript实现字符串替...
    99+
    2022-10-19
  • php如何实现数组批量替换字符串
    这篇文章主要介绍“php如何实现数组批量替换字符串”,在日常操作中,相信很多人在php如何实现数组批量替换字符串问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何实现数组批量替换字符串”的疑惑有所帮助!...
    99+
    2023-07-06
  • nodejs如何使用正则实现字符串替换
    今天小编给大家分享一下nodejs如何使用正则实现字符串替换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。正则表达式的基本语...
    99+
    2023-07-05
  • php字符串查找最后一个字符如何实现替换
    今天小编给大家分享一下php字符串查找最后一个字符如何实现替换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、PHP 查找...
    99+
    2023-07-05
  • JavaScript基于扩展String如何实现替换字符串中index处字符
    小编给大家分享一下JavaScript基于扩展String如何实现替换字符串中index处字符,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去...
    99+
    2022-10-19
  • JavaScript如何实现文本目标字符替换和一键全部替换
    这篇文章主要介绍“JavaScript如何实现文本目标字符替换和一键全部替换”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript如何实现文本目标字符替换和一键全部替换”文章能帮助大家解...
    99+
    2023-07-01
  • 批处理BAT如何实现替换与截取字符串
    这篇文章将为大家详细讲解有关批处理BAT如何实现替换与截取字符串,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、替换用法 例 代码如下:@echo off set a=belcome to CMD bo...
    99+
    2023-06-08
  • php如何实现正则表达式匹配一段字符串替换
    这篇文章主要介绍了php如何实现正则表达式匹配一段字符串替换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php实现正则表达式匹配一段字符串替换的方法:1、创建一个PHP示例...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作