MySQL - 在WordPress数据库中使用通配符更新文本

时间:2013-10-10 10:05:12

标签: mysql wordpress

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

<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>

我需要用&#39;查看PDF&#39;替换文字。 (没有引号)同时保持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>"');

2 个答案:

答案 0 :(得分:0)

试试这个适用于我的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

但是您必须用表格列替换我的硬编码字符串<a href="http://www.domain.com.au/PDF/Rapidvite/Action_K_Salts.pdf">http://www.domain.com.au/PDF/Rapidvite/Accelerator_Oil.pdf</a>。例如,如果您使用这些链接名称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;

答案 1 :(得分:0)

我使用 - 并不一定是最好的方式,但是当我从概念变为现场或其他任何东西时,它适用于我的网站:

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'>;

如果我遗漏了语法错误,请抱歉,但希望你能得到我所做的一切。如果你在自定义字段中有链接,那么第二个命令很有用,我经常使用它。