如何使用 mysql 通过Post_id和更新表来查找自定义分类值

How to Look Up Custom Taxonomy Value by Post_id and Update Table Using Mysql

提问人:J.R. 提问时间:10/20/2023 更新时间:10/20/2023 访问量:6

问:

我已经为此工作了几个小时,但无法弄清楚。长话短说,我正在一个 Wordpress 网站上工作,到目前为止,我为各种专业人士导入了大约 1M 个列表。他们根据他们的专业(例如,水管工、机械师、护士等)进行组织。其中只有大约 70% 被正确索引,因此其中很多没有被网站上的搜索功能选中。我认为将其余部分转储到另一个表中并插入它们是个好主意。

我将我需要的几乎所有列的每个字段都导入到复制表中,但专业和业务隶属关系除外。这些是如何组织的,这是非常令人困惑的。我不知道如何转移特定分类值的值。每个专业人员只有一个专业,但可以/可能不会有多个隶属关系。

wp_term_relationships

   object_id   term_taxomony_id  term_order
      5705         53192          1
      5705         55596          1

wp_term_taxonomy

   term_taxonomy_id    term_id   taxonomy     description   parent  count
   53192               53186     hospitals                          121
   55596               55590     specialty                          57479
  

wp_terms

   term_id   name                      slug                      term_group    order
   53186     Texas Orthopedic Hospital texas-orthopedic-hospital 0             0
   55590     Physician Assistant       physician-assistant       0             0

连接已经足够令人困惑,而不必处理 wordpress 数据库的结构。似乎我需要加入 3 张桌子。我知道如何使用 vlookup 做到这一点,但现在我致力于使用 mysql 学习这个过程。

UPDATE wp_leftover_pros_temp wp
JOIN wp_term_relationships wtr ON (wp.`post_id` = wtr.`object_id`)
JOIN wp_term_taxonomy wtt ON (wtr.`term_taxonomy_id` = wtt.`term_taxonomy_id`) 
JOIN wp_terms wt ON (wt.`term_id` = wtt.`term_id`)  
SET wp.specialty  = wt.name
WHERE wp.post_id = wtr.object_id AND wtr.term_taxonomy_id = '55596'

正确输入该代码会更新该专业的每个匹配项(55590 = 医师助理)。如果我将其删除,则剩余的记录将更新为默认值,由于某种原因,该值似乎是性别。我有 400 多个专业。我希望它能将每个post_id与专业相匹配,并找到正确的值。我不确定为什么它是这样设计的。

有没有办法在不创建 400+ 更新语句的情况下更新每个帖子的专业?

mysql wordpress 自定义 分类术语

评论


答: 暂无答案