mySQL搜索模式的组合?

时间:2013-12-14 05:04:43

标签: php mysql sql combinations

假设我在一栏中有一个条目:

apples oranges pears

(假设它可以是无限量的水果,但我只是使用3)

我使用搜索框搜索“apples oranges”并在$ fruit变量中传递字符串。 我的搜索出现了:

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

然而,当我搜索“橘子苹果”或“苹果梨”时,没有结果出现,因为该模式与任何条目都不匹配。有没有简单的方法来搜索所有模式组合?

3 个答案:

答案 0 :(得分:1)

您必须添加

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

答案 1 :(得分: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;

答案 2 :(得分:0)

如果fruit column包含一些任意文字,请考虑使用Full Text Search

另一方面,如果这些fruits是某个实体的某种特征,那么请停止(不要在数据库中存储分隔值)并通过创建许多数据来规范化您的数据对多表entity_fruits