我需要php来显示数据库中的结果,结果最多。
我有:
foreach($keywords as $key=>$keyword) {
$where .= "`title` LIKE '%$keyword%'";
if ($key != ($total_keywords - 1)) {
$where .= " OR ";
}
}
$results = "SELECT * FROM topics WHERE $where";
所以如果有人在搜索
“如何开火”
会显示
换句话说,首先是匹配关键字最多的标题。
答案 0 :(得分:0)
我之前有一个类似的问题,全文搜索不是一个选项,虽然这是一个慢得多的方法,它似乎适合我的需要。基本上,UNION
您的每个结果都是这样的,并使用COUNT
来计算结果数量:
SELECT Title, COUNT(*) as cnt
FROM (
SELECT * FROM Topics WHERE Title LIKE '%How%'
UNION ALL
SELECT * FROM Topics WHERE Title LIKE '%to%'
UNION ALL
SELECT * FROM Topics WHERE Title LIKE '%start%'
UNION ALL
SELECT * FROM Topics WHERE Title LIKE '%fire%'
) t
GROUP BY Title
ORDER BY 2 DESC
这是Fiddle。
以下是结果:
TITLE CNT How to start fire 4 to fire start 3 How to 2 start 1