我一直在閱讀註釋和你的問題,我認爲你需要一點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