MYSQL - 选择多于1个LIKE的行

时间:2015-06-01 16:20:35

标签: search mysqli sql-like

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

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

我希望我能理解,你可以帮助我。

此致 Yoplenk

3 个答案:

答案 0 :(得分: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 :(得分:1)

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

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

然后,您可以使用案例

订购
Order By Case When Column Like "The long lasting i don't know%" Then 1 Other 2 End

答案 2 :(得分:1)

你可以尝试使用@jazkat在Mysql Like multiple values

所说的REGEXP

您的查询将是:

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