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

从PHP Mysql中标记的逗号分隔值中搜索关键字,php,mysql,joomla,tree,Php,Mysql,Joomla,Tree,我正在使用moset树,我正在创建搜索功能,其中 当用户输入关键字(如college)时,它应该在数据库中搜索标记列中的college值。如果学院匹配,则该条目应显示在结果中 我的数据库视图: 第一个表:保存所有列表的mt_链接。 第二个表:保存标记并对其进行规范化的mt_cfvalue 在第一和第二个表中表示链接id相同。因此,我们需要与本专栏建立联系 我创建了这个查询: SELECT * FROM #__mt_links link INNER JOIN #__mt_cfvalues val

我正在使用moset树,我正在创建搜索功能,其中 当用户输入关键字(如college)时,它应该在数据库中搜索标记列中的college值。如果学院匹配,则该条目应显示在结果中

我的数据库视图: 第一个表:保存所有列表的mt_链接。 第二个表:保存标记并对其进行规范化的mt_cfvalue 在第一和第二个表中表示链接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:修理、电脑、笔记本电脑

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

我希望我能提供清楚的信息。请帮忙 谢谢


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

CONCATlaptop,像“%$keywords%”这样的值你可以试试这个,但它不起作用,下面是我得到的结果,我回显查询选择*从链接内部连接链接内部连接链接链接上的值val.link\u id=val.link\id在SETval.value中查找值,“college”您的搜索查询没有结果。@user2753272:Find_In_set接受两个参数,其中第一个是要搜索的值,第二个是要执行搜索的源。示例:选择。。。。查找集合“$keywords”,val.value是的,我用两个参数尝试了相同的方法请参见:SELECT*FROM\uu mt\u links link internal JOIN\uu mt\u cfvalues val ON link.link\u id=val.link\u id在集合“computer”中查找,val.value 0您的搜索查询没有结果。我知道计算机在value列中。但仍然无法找到它。如果你搜索计算机,在专栏中它就像计算机一样,它不会找到它。
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