我试图弄清楚如何正确地将一个类别添加到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大师能够解决这个问题?
答案 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个条目,搜索您的关键字并使用批量修改添加类别。
对于某些服务器而言,这可能会占用大量资源,并可能导致超时。