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个标题标题短描述长描述?