MySQL如果关键字在文章标题中,则为文章添加标签

时间:2014-09-02 19:04:15

标签: php mysql sql algorithm tags

这似乎有点超出我的联盟和MySQL的知识(我不确定它是否甚至可能与MySQL)。因此,如果有人可以提供帮助,我们将非常感激。

我想做以下事情:

  1. 输入/定义关键字,例如mercedes
  2. 查找标题中包含该关键字的所有Joomla K2文章
  3. 而不是每篇文章都将我的关键字mercedes指定为标记。
  4. 现在......列出了三个列有相关列的表:

    k2_items

    idtitle

    k2_tags

    idnamepublished(如果标记已发布,则分配值为1)

    k2_tags_xref

    idtagIDitemID

    因此,查询应选择k2_items表格中标题为keyword的所有项目,检查keywordtag是否已定义为k2_tags ,如果不是创建一个新标签。之后,应生成新的k2_tags_xref条目,以便将keyword标记与K2文章项目相关联。

    我的大学仍然没有数据库课程,所以我有点不在我的联盟中,而且它应该只是我正在开发的网站的简单修饰。

    对此有任何帮助将非常感激,我相信它会在以后帮助社区。

    谢谢!

1 个答案:

答案 0 :(得分:0)

SQL中的部分实际上非常简单。如果您在k2_tags_xref(tagId, itemId)上有唯一索引,那么这是最简单的。这有重复数据库的数据库检查。

然后你需要做两件事:

  • 在标题中找到所有带有关键字的项目
  • 找到关键字
  • tagId

这会产生如下查询:

insert into k2_tags_xref(tagId, itemId)
    select t.tagId, i.itemId
    from k2_items i cross join
         (select t.tagId from k2_tags where tag = 'mercedes') t
    where i.title like '%mercedes%';

如果标签不存在,您还需要将标签放入标签表中。但上面的查询是SQL代码的基础。