在使用MySQL进行搜索查询的时候,我们可能会需要对多个关键词进行高亮显示,以便让用户更快地找到自己需要的内容。下面介绍一种实现方法:
SELECT CONCAT(LEFT(content, POSITION(LOWER("关键词1") IN LOWER(content)) - 1),"",SUBSTRING(content, POSITION(LOWER("关键词1") IN LOWER(content)), LENGTH("关键词1")),"",SUBSTRING(content, POSITION(LOWER("关键词1") IN LOWER(content)) + LENGTH("关键词1"), LENGTH(content) - POSITION(LOWER("关键词1") IN LOWER(content)) - LENGTH("关键词1") + 1),LEFT(content, POSITION(LOWER("关键词2") IN LOWER(content)) - 1),"",SUBSTRING(content, POSITION(LOWER("关键词2") IN LOWER(content)), LENGTH("关键词2")),"",SUBSTRING(content, POSITION(LOWER("关键词2") IN LOWER(content)) + LENGTH("关键词2"), LENGTH(content) - POSITION(LOWER("关键词2") IN LOWER(content)) - LENGTH("关键词2") + 1))FROM table_nameWHERE content LIKE "%关键词1%" AND content LIKE "%关键词2%";
这里的关键词可以根据实际情况进行修改,例如可以同时查询多个关键词,只需在WHERE语句中增加相应的限制即可。
需要注意的是,如果查询内容过于繁琐,可以考虑将代码写成存储过程,方便调用和维护。另外,也可以考虑使用全文检索等其他方式进行查询优化。