我的问题是,我想创建一个简单的搜索引擎。我已经通过使用2个查询使其工作。第一个搜索完整的搜索词,第二个搜索所有匹配的单词。例如,如果您搜索"The long lasting i don't know"
,则它将搜索"The long lasting i don't know"
,然后搜索"The"
,然后搜索"long"
,依此类推。
但是我想使用分页,它会弄乱结果,所以我需要在1个查询中使用它。使用IN
运算符可以实现吗?
您可以尝试使用REGEXP,如@jazkat在Mysql Like multiple values所言
您的查询将是:
SELECT * FROM table WHERE column REGEXP "The long lasting i don't know|The|long|lasting|i|don't|know"
有关REGEXP的更多信息,请点击http://www.tutorialspoint.com/mysql/mysql-regexps.htm
您必须像下面那样将个人与OR一起使用
select * from tablename where field like "%The long lasting i don't know%" or field like "%The%" or field like "%long%" or field like "%lasting%" or field like "%i%" or field like "%don't%" or field like "%know%"
我的回答在性能方面可能不是最佳的,但这是我的想法。
您只能逐字搜索(例如'%The%'之类的列或'%long%等之类的列)。您肯定会得到包含整个句子的结果。
然后,您可以搭配箱子订购
Order By Case When Column Like "The long lasting i don't know%" Then 1 Other 2 End