在MySQL中搜索链接

ee7vknir  于 2023-03-07  发布在  Mysql
关注(0)|答案(2)|浏览(72)

我的网站上有一些链接坏了,我需要改变很多链接。我最初的想法是通过MySQL,用<a href="/new-link/">替换像<a href="/old-link/">这样的字符串。
当我转到数据库-搜索并输入搜索:<a href="/old-link/">,选择所有表并选择精确匹配,没有找到任何结果。如果我选择任何单词而不是精确匹配,它会找到许多不相关的结果。
我想搜索字符串<a href="/old-link/">的精确匹配项,以确保我不会替换某些不能替换的内容。
我怀疑什么都找不到,因为我的搜索中使用了许多特殊的符号,如〈〉""//,但我无法谷歌任何连贯的信息,如何把查询正确。有人能帮我吗?
另外,我还浏览了stackoverflow在创建此问题期间建议的主题,但没有找到答案
P. P. S我用“代码”标记更新了帖子,因为我不知道必须事先完成

dddzy1tm

dddzy1tm1#

只需使用sql replace函数

UPDATE yourTable SET yourColumn = REPLACE(yourColumn, 'href="/old-link/"', 'href="/new-link/");

解决方案由@PunitGajjar提供

olmpazwi

olmpazwi2#

正如我在评论中解释的,你可以使用下面的一些循环。这是一个PHP脚本的例子。你可以在你使用的任何技术中使用同样的逻辑。
建议您创建一个数组,只是因为您希望更新的所有表中可能没有相同的列名。

$myArray = [
    "table_one" => "table_one_column",
    "table_two" => "table_two_column",
    "table_three" => "table_three_column",
    "table_four" => "table_four_column"
];

foreach ($myArray as $tableName => $columName){
    /* Your query execution */
    $query = "UPDATE ".$tableName." SET ".$columName." = REPLACE(".$columName.", 'href=\"/old-link/\"', 'href=\"/new-link/\");";
}

相关问题