在使用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_name WHERE content LIKE "%關鍵詞1%" AND content LIKE "%關鍵詞2%";
這里的關鍵詞可以根據實際情況進行修改,例如可以同時查詢多個關鍵詞,只需在WHERE語句中增加相應的限制即可。
需要注意的是,如果查詢內容過于繁瑣,可以考慮將代碼寫成存儲過程,方便調用和維護。另外,也可以考慮使用全文檢索等其他方式進行查詢優化。