在PHP Mysql中从逗号分隔的标记值中搜索关键字

时间:2014-05-17 07:00:11

标签: php mysql joomla tree

我正在使用moset树,我正在创建搜索功能 当用户输入大学等关键词时,应该在数据库中使用标签栏中的大学值进行搜索。如果大学匹配,则该条目应显示在结果中。

我的数据库视图: 第一张表:mt_links,其中保存了所有列表。 第二个表:mt_cfvalues,其中保存了标签并对它们进行了标准化 表示第一和第二表中的link_id是相同的。所以我们需要与这个专栏建立联系。

我创建了这个查询:

SELECT * FROM #__mt_links link INNER JOIN #__mt_cfvalues val
ON link.link_id = val.link_id AND val.value LIKE '%$keywords%'"

但是通过这种方式我得不到所有的结果。

标签示例:在mt_cfvalues表中,有一个列名作为值,这是需要获取列表的关键字。

示例1:大学,大学,学院 示例2:维修,计算机,笔记本电脑

如果我输入上面提到的任何关键字,例如:笔记本电脑在列表中排名第三,那么即使我需要显示相关列表。指使用笔记本电脑标签的产品,该产品应作为结果显示。

我希望我能提供明确的信息。请帮忙 感谢

1 个答案:

答案 0 :(得分:0)

SELECT 
* 
FROM 
   #__mt_links link 
   INNER JOIN #__mt_cfvalues val ON (
      link.link_id = val.link_id
   )
WHERE
   FIND_IN_SET(val.value,'$keywords') != 0

$ keywords需要看起来像:keyword1,keyword2,keyword3 ....,keywordN