在wp_postmeta表中,我想替换meta_value字段中出现的URL(除了其他内容之外),但仅当某些meta_keys匹配时才替换。
这些条目的内容是链接图像。传出网址应更改,但图像的路径必须保持不变。
示例:
<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'
如果有人可以提出查询来执行此操作,将会节省我大量的体力劳动。
非常感谢您的帮助。
谢谢
最佳答案
因此,经过进一步阅读和一些试验和错误后,我自己提出了 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 条件以仅在这些行中执行操作
关于mysql - 替换wp_postmeta的meta_value中与特定meta_key相关的URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40207052/