SQL查询将类别添加到post_content匹配关键字的一堆帖子中

时间:2017-11-30 18:44:01

标签: mysql wordpress

我试图弄清楚如何正确地将一个类别添加到wordpress网站中的大量帖子中,我更喜欢直接在数据库中这样做,因为它更快,更好学习经验:)

到目前为止,这是我的mysql查询:

SELECT *
FROM wpsite_posts
WHERE post_content like '%keyword%'

这会列出我要修改的所有帖子,但问题是类别列与 wpsite_posts

不在同一个表中

该类别位于名为 wpsite_term_relationships

的表格中

在表格 wpsite_posts 中,有一个名为 ID 的列,这是必须与表格中的 OBJECT_ID 列匹配的数据的 wpsite_term_relationships

在表格 wpsite_term_relationships 中有一个名为 term_taxonomy_id 的列,此列包含wordpress的类别和标记ID。

我要做的是使用一个SQL查询,搜索表 wpsite_posts post_content 找到'关键字'在 post_content 中,然后使用 post_content 中的匹配ID在 object_id 列中查找 wpsite_term_relationships 内的匹配项如果匹配,我想在 term_taxonomy_id 栏中添加一个新条目' 5232'

5232 =新类别ID我希望将这些帖子放在里面。

很抱歉长时间阅读,我不知道如何更好地解释这一点,任何mysql大师能够解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以结合使用INSERT INTO和SELECT。

此查询的第一行描述了插入,接下来的三行描述了要插入的行列表。

SELECT语句中的字段数需要与INSERT中的字段数相匹配。引号中的值将是文字的(因此' 5232'将作为term_taxonomy_id插入到每一行中),而将根据返回的值插入与FROM子句中的表中的列名匹配的值。 SELECT。

INSERT INTO wpsite_term_relationships (term_taxonomy_id, object_id)
SELECT '5232',  ID
FROM  `wpsite_posts` 
WHERE  `post_content` LIKE  '%keyword%'

<强>替代地

(这可能不会为OP做到这一点,但在类似的情况下可能会帮助其他人)

如果关键字的帖子少于1000个,您可以在Wordpress中完成。只需访问帖子&#39;页面,将页面设置为列出1000个条目,搜索您的关键字并使用批量修改添加类别。

对于某些服务器而言,这可能会占用大量资源,并可能导致超时。