选择具有多个LIKE的行

问题描述 投票:1回答:3

我的问题是,我想创建一个简单的搜索引擎。我已经通过使用2个查询使其工作。第一个搜索完整的搜索词,第二个搜索所有匹配的单词。例如,如果您搜索"The long lasting i don't know",则它将搜索"The long lasting i don't know",然后搜索"The",然后搜索"long",依此类推。

但是我想使用分页,它会弄乱结果,所以我需要在1个查询中使用它。使用IN运算符可以实现吗?

mysql search sql-like
3个回答
1
投票

您可以尝试使用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


1
投票

您必须像下面那样将个人与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%"

引用此链接Using SQL LIKE and IN together


1
投票

我的回答在性能方面可能不是最佳的,但这是我的想法。

您只能逐字搜索(例如'%The%'之类的列或'%long%等之类的列)。您肯定会得到包含整个句子的结果。

然后,您可以搭配箱子订购

Order By Case When Column Like "The long lasting i don't know%" Then 1 Other 2 End
© www.soinside.com 2019 - 2024. All rights reserved.