【问题标题】:mysql tag systemmysql标签系统
【发布时间】:2012-11-07 14:47:48
【问题描述】:

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

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

想法是拉回一个与原帖有共同标签的项目列表,我会尽力解释

假设您有一个包含 5 个标签 tagA tagB tagC 等的帖子

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

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

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

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

等等。

但我什至不知道从哪里开始这个查询

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

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'

【问题讨论】:

    标签: mysql wordpress tags


    【解决方案1】:

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

    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
    

    【讨论】:

    • 谢谢,你帮了大忙 :)
    猜你喜欢
    • 2013-10-07
    • 2020-10-18
    • 2012-01-07
    • 2010-10-07
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多