我一直在阅读注释和你的问题,我认为你需要一点PHP来准备你的MySql语句,以及一个Mysql查询来获取匹配结果限于前5个没有重复的项目?
如果是这样!
PHP
<?php
$searchFieldData = $_POST['search'];
$searchArr = explode(" ", $searchFieldData);
$sqlWhere = '';
$count = count($searchArr);
foreach ($searchArr as $or) {
$sqlWhere.= " title LIKE '%".$or."%' ";
if ($count>1) $sqlWhere.= " OR ";
$count--;
}
$query = "SELECT col1, col2, ... FROM table WHERE ".$sqlWhere." LIMIT 5";
?>
上面的代码将返回该检索词: “超级超级查询履带”
SELECT COL1,COL2,...... FROM表WHERE标题LIKE'%super%'或标题LIKE'%hyper%'或标题LIKE'%query%'或标题LIKE'%crawler%'LIMIT 5
现在的MYSQL MAGIC
如果你不希望任何重复的结果,只需使用:GROUP BY '标题'
和最终的查询是:
$query = "SELECT col1, col2, ... FROM table WHERE ".$sqlWhere." GROUP BY 'title' LIMIT 5";
您能否给一些数据的一个例子,您预期的结果集,用于查询数据? – 2012-04-27 18:51:29
请通过一个例子来解释你的问题。 – Nishant 2012-04-27 18:52:52
您可以在每个查询之间使用UNION。这将删除重复项。 – 2012-04-27 18:52:53