mysql搜索,返回搜索成功的列名
我有一个非常简单的搜索查询,如下所示mysql搜索,返回搜索成功的列名,mysql,search,Mysql,Search,我有一个非常简单的搜索查询,如下所示 select * from products_stock where ( title like '%$searchterm%' or short_desc like '%$searchterm%' or long_desc like '%searchterm%' ) 当我从long_desc专栏中获得成功时,我想在PHP中编写一些特殊的行为。有没有办法获取mysql结果,以突出显示搜索成功的列?您可以使用派生字段。看起来很难看,
select * from products_stock where (
title like '%$searchterm%' or
short_desc like '%$searchterm%' or
long_desc like '%searchterm%'
)
当我从long_desc专栏中获得成功时,我想在PHP中编写一些特殊的行为。有没有办法获取mysql结果,以突出显示搜索成功的列?您可以使用派生字段。看起来很难看,但很管用:
SELECT *, (title LIKE '%$searchterm%') AS found_in_title,
(short_desc LIKE '%$searchterm%') AS found_in_short_desc
etc...
LIKE将返回布尔值true/false作为结果集中的字段,as别名将告诉您匹配发生在哪个字段中
注意,对于这类事情,使用全文索引可能会更好<代码>如“%…%”匹配项不能使用索引,在“大型”表上的性能将非常糟糕。性能非常糟糕,您就是这样。实际的产品查询更复杂,我认为重新编写以使用全文搜索是明智的,但您给我的内容将同时执行。您是指3个标题标题短描述长描述?