2013-12-14 53 views
0

說我有一列一個條目是:mySQL搜索組合的一種模式?

apples oranges pears 

(假設它可以是水果的infnite量,但即時通訊只用3)

我使用搜索框搜索「蘋果橙子」並在$ fruit變量中傳遞字符串。 我的搜索上來使用:

SELECT * FROM fruits WHERE fruitcolumn LIKE '%$fruit%' 

然而,當我搜索「桔子蘋果」或「蘋果梨」,沒有結果上來,因爲模式不匹配任何條目。有沒有簡單的方法來搜索模式的所有組合?

Ty。

+0

您忘記使用列名 –

+0

是啊這只是錯別字對不起 – user2968401

+0

它是一列中的一項 – user2968401

回答

0

如果fruit column包含然後任意文本考慮使用Full Text Search

如果在另一方面,這些fruits是某種實體的特徵的話,請停止(不存儲在數據庫中的分隔值),並創造了許多一對多表entity_fruits正常化您的數據。

1

您必須添加

SELECT * FROM fruits WHERE <coloumn name> LIKE '%$fruit%' 
+0

抱歉編輯我的問題要更清楚一點,那只是一個錯字 – user2968401

0

你可以嘗試這樣的事情

$where=''; 
$fruit="apples fruit2"; 
$arr=explode(" ",$fruit); 
for($i=0;$i<count($arr);$i++) 
{ 
if($i==0) 
    $where=$where." LIKE '%".$arr[$i]."%'"; 
else 
    $where=$where." AND fruitcolumn LIKE '%".$arr[$i]."%'"; 
} 

echo "SELECT * FROM fruits WHERE fruitcolumn ".$where;