我現在有一個查詢,確保了一些術語不是在title
或description
領域,像這樣:MySQL的不喜歡的是有沒有更好的辦法做到這一點
" ... title NOT LIKE '%word1% AND description NOT LIKE '%word1%' AND title NOT LIKE '%word2%' AND description NOT LIKE '%$word2%' ..."
有沒有更好的辦法這樣做的原因是單詞數量將會增長,並且查看查詢時效果不佳。
我現在有一個查詢,確保了一些術語不是在title
或description
領域,像這樣:MySQL的不喜歡的是有沒有更好的辦法做到這一點
" ... title NOT LIKE '%word1% AND description NOT LIKE '%word1%' AND title NOT LIKE '%word2%' AND description NOT LIKE '%$word2%' ..."
有沒有更好的辦法這樣做的原因是單詞數量將會增長,並且查看查詢時效果不佳。
對於不同的字,你將不得不使用的條件,但是你可以縮短UR查詢與和的幫助下獲得性能如下查詢:
and (instr(title,'word1')<=0 and instr(description,'word1')<=0) and (instr(title,'word2')<=0 and instr(description,'word2')<=0)
你讀過這個問題嗎? –
對不起,您以前的帖子。我編輯了我的回覆。之前我給了一個簡短的回覆,但我的意思是這個。 – Krishna
儘管這不是我的downvote,你的帖子仍然不正確。在這種情況下,您__不能使用'CONCAT()'。如果你與'「foo」匹配,你的'title'是'aaaaf','description'是'oobbbb',那麼查詢將會在它們應該被包含在結果中時被過濾掉。 –
你可以試試這個,
(title NOT REGEXP 'word1|word2|word3') AND (description NOT REGEXP 'word1|word2|word3');
恐怕對於這個要求你沒有很多其他的選擇。在這種情況下看到'LIKE'的一些好的替代方案會很有趣 –
你是什麼意思_「看起來效率不高」_? –
對於每個關鍵字,只是看起來不太合適。我希望可能會有類似...不像(關鍵字1,關鍵字2,關鍵字3),我只是缺少語法 – bertster