我正在尝试使用Wildcards在MySQL中进行搜索和替换

时间:2013-05-30 02:41:23

标签: mysql sql wordpress search wildcard

我正在将内容从其他CMS迁移到Wordpress。我的挑战是修复相关字段中包含的所有内部损坏的URL是'post_content'。

简而言之,我需要搜索来自旧CMS的损坏URL中的整数,并将其替换为映射到正确Wordpress内容ID的新值。

我在表'wp_postmeta'中将旧值和新值映射为整数,其中'post_id'是新值,'meta_value'是旧值:

post_id | meta_key   | meta_value
13533   | content_id | 30
13534   | content_id | 3094 
13535   | content_id | 4066

这是我到目前为止编写的SQL查询,我觉得它非常接近 - 但我需要使用通配符搜索'meta_value',否则它将无效。我不知道该怎么做,并希望得到一些提示。

UPDATE wp_posts
INNER JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id
SET post_content = REPLACE(post_content, wp_postmeta.meta_value , wp_postmeta.post_id)
WHERE meta_key='content_id' 

提前致谢 - 我是SQL的新手,我花了一天时间才能做到这一点! : - )

1 个答案:

答案 0 :(得分:0)

您可以获得meta_key的样本数据吗?我希望这有帮助

我认为您的meta_keys3094

之类的内容开头
UPDATE wp_posts
INNER JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id
SET post_content = REPLACE(post_content, wp_postmeta.meta_value , wp_postmeta.post_id)
WHERE meta_key LIKE '30%' 

有关详细信息,请参阅此链接WILDCARDS