我现在有一个查询,确保了一些术语不是在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