通配符 SQL 查询以搜索特定文本并替换

Posted

技术标签:

【中文标题】通配符 SQL 查询以搜索特定文本并替换【英文标题】:Wildcard SQL Query to search for specific text & replace 【发布时间】:2020-09-11 16:22:35 【问题描述】:

我正在尝试进行一个非常通配符的 SQL 查询,以跨多个站点(通过 phpMyAdmin)查找特定 URL 并替换它们。

我从以下开始,但它显然不是有效的 SQL 查询:

SELECT * FROM *.* WHERE * LIKE '%https://website.com/er01%'

我实际上是在尝试查看每个数据库、每个表、每个列。一旦我检查了它们,我想创建一个查询以用新的 URL 替换 URL(URL 需要在值的中间替换,因为它们通常在页面内容中)

我是 SQL 的新手,所以它可能是显而易见的,但我无法在网上任何地方找到一种方法来做我想做的事。

【问题讨论】:

【参考方案1】:

你需要跑

show databases;

对于每个数据库,运行

show tables;

对于每个表,运行

desc <tablename>

对于每一列,运行

select * from databasename.tablename where columnname like '%https://website.com/er01%';

如果这样做的可能性太多,请考虑生成查询。

如果您需要所有结果,请考虑合并它们。

【讨论】:

以上是关于通配符 SQL 查询以搜索特定文本并替换的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询替换通配符文本? [复制]

模糊查询(排除%等通配符并支持不连续关键字查询)

使用通配符在文本中搜索模式并自动导出匹配项

SQL利用通配符进行模式查询

模糊查询中输入通配符的问题

MySQL 用通配符替换