[英]search for multiple values, sort by relevance (php + MySQL, no full text search)
我有一个表格,其中包含我要搜索的标题和关键字列。 我想添加使用多项搜索的功能,但是它应该通过相关性对结果进行排序。 FullTextSearch不是一个选项,因为我目前正在使用MySQL5.5和innoDB。
我目前的做法如下:
我现在想知道的是,如果有一个更有效的方法来做到这一点,因为我主要使用php来做这件事。 我应该在数据库中进行一些处理吗? 我应该彻底改变我的方法吗?
该表相对较小(不到1万条记录),我不认为它会在不久的将来变得更大。
有什么建议么? 谢谢。
你可以在SQL中进行计数。 这是一个例子:
select ((col like 'term1') +
(col like 'term2') +
. . .
(col like 'termN')
) as NumMatches
from t
having NumMatches > 0
order by NumMatches desc;
MySQL将布尔值视为0(表示假)和1(表示真)。 您可以将它们一起添加以获得匹配的总数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.