【发布时间】:2012-09-27 09:42:17
【问题描述】:
我想根据这些表在我的应用程序中实现搜索功能。
我在搜索页面上有 5 个字段
- 输入框 - 关键字或标题中的任何单词
- 作者 - 选择框(author_id 将作为值传递给函数)
- 类别名称 - 选择框(category_id 将作为值传递给函数)
- 月份 - 从 1 - 12 中选择框
- 年份 - 选择框从 2000 年到 2012 年
我想根据这些规则创建搜索查询,
- 结果数组将按
insights.read_time排序,(文章被阅读了多少次) - 只想得到
article.article_id
这里是成熟的工作示例
我正在运行以下查询以获取但它不完整 https://leading-people.com/search
选择
article.article_idFROMarticleWHEREarticle.is_active= '1' AND (contentLIKE '%%' 或titleLIKE '%%' ORtagsLIKE '%%') UNION ALL SELECTarticle.article_idFROMkeywordsINNER JOINarticleWHEREarticle.is_active= '1' 与 (article.article_id=keywords.article_id与keywords.keywordtextLIKE '%%')
表article
列
-
article_id(主要) is_activetitle-
themonth theyear
表article_author
评论:此表仅供参考作者详细信息在另一个表中。所以这些id仅供参考。
列
-
article_author_id(主要) author_idarticle_id
表article_categories
评论:此表仅供参考,类别详细信息在另一个表中。所以这些id仅供参考。
列
-
article_categories_id(主要) article_idcategories_id
表insights
评论:此表仅供参考,类别详细信息在另一个表中。所以这些id仅供参考。
列
-
insights_id(主要) article_idread_time
表keyword
评论:此表仅供参考,类别详细信息在另一个表中。所以这些id仅供参考。
列
-
keyword_id(主要) -
article_id keywordtext
希望!我已经把它的格式正确了,所以每个人都能理解!
【问题讨论】:
-
你真的应该看看全文搜索;使用
LIKE '%blah%'的查询将永远无法利用索引,并且随着数据集的增长它们会非常慢。见:dev.mysql.com/doc/refman/5.0/en/fulltext-search.html