你可能會更喜歡像Lucene這樣的全文搜索引擎,但是你可以在mysql中完成。你只需要建立基於單詞數量的搜索條件。對於很多情況下,這將是一個非常低效的查詢。
像
select * from table
where text like '% heart%' and text like '% disease%'
Link to SQLFiddle
應該工作。
請注意,這不一定是完整的解決方案。以下價值不會被退回,因爲在疾病或心臟之前沒有空間。
Diseases are bad.Hearts are very susceptible.
問題當然是,你將不得不開始建立很多特殊情況。爲了解決這個意見,我教的例子,你就必須在規則中增加,如:
select * from terms
where (terms like '% heart%' or terms like 'heart%' or terms like '%.Heart%')
and (terms like '% disease%' or terms like 'disease%' or terms like '%.disease%')
Link to more advanced case
你也可以用某種正則表達式的做到這一點。這將處理你提出的案例。
select * from terms
where (terms like 'heart%' or terms REGEXP '[ |\.]heart')
and (terms like 'disease%' or terms REGEXP '[ |\.]disease')
Example with regular expressions
究竟什麼是你的問題? – Dan455
看起來像你忘了你的帖子的其餘部分。 – Kevin
對不起,在完成之前發佈! – Mandeep