【问题标题】:MySQL Search and Replace (Similar Text - Not Exact)MySQL 搜索和替换(类似文本 - 不准确)
【发布时间】:2014-10-30 10:36:24
【问题描述】:

我想替换这个:

~ <a href="xxxx">Download</a>

与:

<div class="down"> ~ <a href="xxxx">Download</a> </div>

大约有 300-350 个地方重复了 DOWNLOAD 词。 xxx不是一成不变的,每次都在变,超链接每次都会变……

是否可以使用任何 SQL 查询来做到这一点?如果在 SQL 中不可以,可以在 php 中完成吗?

【问题讨论】:

    标签: php sql replace


    【解决方案1】:

    怎么样:

    UPDATE MyTable 
    SET MyField = REPLACE(MyField, 
                          '~ <a href="xxxx">Download</a>', 
                          '<div class="down"> ~ <a href="xxxx">Download</a> </div>')
    

    好的,把"xxxx" 周围的所有东西都换掉怎么样:

    UPDATE MyTable 
    SET MyField = 
    REPLACE(
      REPLACE(MyField, 
              '~ <a href=', 
              '<div class="down"> ~ <a href'),  
      '</a>', 
      '</a> </div>')
    

    【讨论】:

    • 我认为这个答案错过了 OP 表达的一个关键思想,即 "xxxx" 不是一个常数,这在每一行都会有所不同。至少,这就是我从 OP 短语中得到的意思:“超链接每次都会改变”。
    • @linger,是的,xss 不是恒定的.. 每次都会改变 :(
    【解决方案2】:

    从表中获取行并使用以下内容。

    foreach($result as $row)
    {
       echo '<div class-="down"><a href = "'. $row['xxxx'] .'" >Download</a></div>';
    }
    

    【讨论】:

    • 请分享更多关于href值的信息。它来自哪里。
    【解决方案3】:

    MySQL 有一个 REGEXP 运算符,但它仅适用于“匹配”,不适用于替换。

    这样的表达式:

    REPLACE(
      REPLACE(col, 
        , '~ <a href="'
        , '<div class="down"> ~ <a href="'
      )
      , '">Download</a>'
      , ">Download</a> </div>'
    )
    

    可能会达到您想要的结果这两个替换将独立完成。也就是说,字符串中'~ &lt;a href="'所有个实例,而不仅仅是Download之后的那些实例。

    我强烈怀疑这对您不起作用,因为我怀疑您需要对其执行此操作的列包含这些相同字符串的其他实例,不需要替换。


    【讨论】:

      【解决方案4】:

      使用str_replace()的PHP方法怎么样

      <?php
      
      $string = '~ <a href="xxxx">Download</a>';
      
      $string = str_replace('~ <a href="xxxx">Download</a>', '<div class="down"> ~ <a href="xxxx">Download</a> </div>', $string);
      
      echo $string;
      

      在 HTML 源代码中回显如下:

      <div class="down"> ~ <a href="xxxx">Download</a> </div>
      

      另外:

      $link = "page.php";
      
      $string = '~ <a href="xxxx">Download</a>';
      
      $string = str_replace('~ <a href="xxxx">Download</a>', '<div class="down"> ~ <a href="'.$link.'">Download</a></div>', $string);
      
      echo $string;
      

      HTML 源代码:

      <div class="down"> ~ <a href="page.php">Download</a></div>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-08
        • 2015-01-09
        • 2023-01-25
        • 2011-03-24
        • 1970-01-01
        • 1970-01-01
        • 2013-10-18
        相关资源
        最近更新 更多