替换wp_postmeta与特定meta_key相关的meta_value中的URL

时间:2016-10-23 19:39:11

标签: mysql wordpress replace phpmyadmin

在wp_postmeta表中,我想替换meta_value字段中出现的URL(除了其他内容),但仅限于某些meta_keys匹配时。

这些条目的内容是链接图像。应该更改传出的URL,但图像的路径必须保持不变。

示例:

<a href="https://olddomain.com/?someparameters" target="_blank" >
<img src="https://olddomain.com/wp-content/..." />
</a>

应该成为:

<a href="https://newdomain.com/?someparameters" target="_blank" >
<img src="https://olddomain.com/wp-content/..." />
</a>

我的查询只获得那些行:

SELECT * FROM `wp_postmeta` WHERE `meta_key` LIKE 'sa_slide%_content' 

如果有人建议进行查询,可以节省我数小时的体力劳动。

非常感谢您的帮助。

由于

1 个答案:

答案 0 :(得分:0)

所以经过一些进一步的阅读和一些反复试验后,我自己想出了sql查询:

UPDATE wp_postmeta 
SET meta_value = REPLACE (meta_value, 'href="https://olddomain.com/', 'href="https://newdomain.com/')
WHERE meta_value LIKE '%href="https://olddomain.com/%'
AND meta_key LIKE 'sa_slide%_content';

所以诀窍是只匹配带有href的字符串以仅定位传出链接并添加AND条件以仅执行那些行中的操作