在问题被标记,关闭或任何事情之前,我试图通过网站寻找答案,我总是找到一部分我正在寻找或我正在尝试做什么,但从来没有具体的东西,我尝试过选择和更新,但从来没有选择,更新和替换
所以我的问题是:
我有一个wordpress数据库表 wp_posts
和另一个名为 wp_postmeta
, wp_post
有一行名为 post_content
以及 wp_postmeta
吵架叫 meta_key
,我正在尝试从中选择、更新和替换字符串 wp_post.post_content
不改变其他条目。为了不修改我需要从中选择的其他条目 wp_postmeta.meta_key
具有 meta_key
“城市”。
所以基本上如果我跑
SELECT p.post_content FROM wp_post p
INNER JOIN wp_postmeta m ON p.id = m.post_id
WHERE p.post_content LIKE "%TEXT I NEED TO REPLACE%"
AND m.meta_key LIKE "%city%";
这将给我600个条目从5000共享相同的文本,我需要更换。
所以如果我跑了
UPDATE wp_post SET post_content = REPLACE
(post_content, 'TEXT I NEED TO REPLACE', 'NEW TEXT THAT I AM REPLACING');
这将更改5000个条目,我不希望这样,我需要的是替换我以前运行的select查询中的600个条目。
总而言之,我需要一种方法来合并这两个查询,以某种方式替换这600个条目的post\u内容字符串,而不影响剩下的4400个条目,这是可以实现的吗?
我希望我的问题足够清楚。再次感谢。
(我使用的是sequel pro)
1条答案
按热度按时间dpiehjr41#
你可以用
JOIN
以及WHERE
在一个UPDATE
查询,就像一个SELECT
查询,以筛选更新的行。