【问题标题】:MySQL - update text using wildcard in WordPress databaseMySQL - 在 WordPress 数据库中使用通配符更新文本
【发布时间】:2013-10-10 10:05:11
【问题描述】:

我需要更新我的数据库中的一些链接,如下所示:

<a href="http://www.domain.com.au/PDF/Rapidvite/Action_K_Salts.pdf">http://www.domain.com.au/PDF/Rapidvite/Accelerator_Oil.pdf</a>
<a href="http://www.domain.com.au/PDF/Rapidvite/Action_K_Salts.pdf">http://www.domain.com.au/PDF/Rapidvite/Accelerator_Oil.pdf</a>

我需要将文本替换为“查看 PDF”(不带引号),同时保留 href 以使其看起来像这样

<a href="http://www.domain.com.au/PDF/Rapidvite/Action_K_Salts.pdf">View PDF</a>
<a href="http://www.domain.com.au/PDF/Rapidvite/Action_K_Salts.pdf">View PDF</a>

这是我在黑暗中的狂野刺 - 对 MySQL 来说非常新

UPDATE `ayfryvrxb2_postmeta` SET meta_value = replace(meta_value, '.pdf">%%</a>', '.pdf">View PDF</a>"');

【问题讨论】:

    标签: mysql wordpress


    【解决方案1】:

    试试这个对我有用的 sql 命令

    SELECT  REPLACE('<a href="http://www.domain.com.au/PDF/Rapidvite/Action_K_Salts.pdf">http://www.domain.com.au/PDF/Rapidvite/Accelerator_Oil.pdf</a>',
    
    
          ( SUBSTR('<a href="http://www.domain.com.au/PDF/Rapidvite/Action_K_Salts.pdf">http://www.domain.com.au/PDF/Rapidvite/Accelerator_Oil.pdf</a>',
          (LOCATE('.pdf">', '<a href="http://www.domain.com.au/PDF/Rapidvite/Action_K_Salts.pdf">http://www.domain.com.au/PDF/Rapidvite/Accelerator_Oil.pdf</a>') + 6),
          LOCATE('.pdf</a>', '<a href="http://www.domain.com.au/PDF/Rapidvite/Action_K_Salts.pdf">http://www.domain.com.au/PDF/Rapidvite/Accelerator_Oil.pdf</a>')) )
          ,'View PDF</a>'
          )
    
    FROM your_table h
    

    但是你必须用你的表格列替换我的硬编码字符串&lt;a href="http://www.domain.com.au/PDF/Rapidvite/Action_K_Salts.pdf"&gt;http://www.domain.com.au/PDF/Rapidvite/Accelerator_Oil.pdf&lt;/a&gt;。例如,如果您使用这些链接名称列列my_table_links

    那么最终的 sql 查询将如下所示

    SELECT 
    REPLACE(my_table_links,
    
    
          ( SUBSTR(my_table_links,
          (LOCATE('.pdf">', my_table_links) + 6),
          LOCATE('.pdf</a>', my_table_links)) )
          ,'View PDF</a>'
           )
    
    FROM `my_table` h
    

    最后在更新的情况下

    UPDATE `ayfryvrxb2_postmeta` SET 
    
    meta_value =  REPLACE(meta_value,
    
    
              ( SUBSTR(meta_value,
              (LOCATE('.pdf">', meta_value) + 6),
              LOCATE('.pdf</a>', meta_value)) )
              ,'View PDF</a>'
               )
    where 1;
    

    【讨论】:

    • 它对我有用。你的弦是什么?也许您必须更改数字 6。先尝试选择,然后将结果发送给我
    【解决方案2】:

    我使用 - 这不一定是最好的方式,但当我从概念转向生活或其他方式时,它适用于我的网站 - 这个:

    UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`, '<OLD URL'>, <'NEW URL'>;
    UPDATE `wp_postmeta` SET `meta_value` = REPLACE(`meta_value`, '<OLD URL'>, <'NEW URL'>;
    

    抱歉,如果我留下了语法错误,但希望你能明白我所做的事情的要点。如果您可能在自定义字段中有链接,第二个命令很有用,我经常使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-21
      • 2011-02-09
      • 2019-04-27
      • 2018-12-12
      • 1970-01-01
      • 2011-10-09
      • 2017-01-21
      • 1970-01-01
      相关资源
      最近更新 更多