mysql标签系统

标签 mysql wordpress tags

我需要一些关于 mysql 查询的帮助

我正在使用带有我自己设计的一些表格的 wordpresses 标记系统

思路是拉回一个和原贴有共同标签的item列表,我会尽力解释

假设你有一个帖子有 5 个标签 tagA tagB tagC 等等

我想在 mysql 上运行一个查询,该查询将拉回一个列表,该列表按其他项目共有的标签数量排序

我想它会根据与原始帖子关联的标签计数创建一个新列。

所以如果一篇文章有​​相同的 5 个标签,我会在新列中看到 post_id 和 5

| post_id | in_common |
-----------------------
|   35    |     5     |
-----------------------
|   109   |     5     |
-----------------------
|   100   |     4     |

等等。

但我什至不确定从哪里开始查询

标签在 wordpresses 中,并根据我可以使用的单个标签获取所有帖子

SELECT * 
FROM wp_posts 
inner JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_ID 
inner JOIN wp_terms ON wp_terms.term_id = wp_term_relationships.term_taxonomy_id 
WHERE wp_terms.name =  'tax'

最佳答案

正如您提到的 wordpress,我猜您使用的是 PHP。所以我建议使用 PHP 构建一个以逗号分隔(并正确转义)的当前帖子的 term_taxonomy_id 列表,然后使用像这样的简单查询来获取所有具有共同标签:

SELECT wp_posts.ID, COUNT(*)
FROM wp_posts
JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_ID 
WHERE term_taxonomy_id IN ('.$the_list.')
GROUP BY wp_posts.ID

关于mysql标签系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13272065/

相关文章:

wordpress - 如何在 WordPress 上阻止用户代理

css - 悬停不会改变大多数菜单项上的链接颜色

javascript - 无法让 Google Plus 与其他社交媒体按钮保持一致

mysql - 设置特定标志后如何选择行数

mysql - 创建列数据mysql评估小时列

java - 从 weblogic 切换到 tomcat/maven 后,.tld 不工作

Github:在提交历史记录中显示标签

java - 如何解决 honeSTLY 没有意义的 TransientObjectException

mysql - 在 sp mysql 的 while 循环中插入 select 语句

php - 清理无法解析的 csv 文件的简单方法是什么