Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个非常简单的搜索查询,看起来像这样
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 别名将告诉您匹配发生在哪个字段中。
请注意,对这类事情使用全文索引可能会好得多。LIKE '%...%'匹配不能使用索引,并且在“大”表上性能将非常糟糕。
LIKE '%...%'