假设我在一栏中有一个条目:
apples oranges pears
(假设它可以是无限量的水果,但我只是使用3)
我使用搜索框搜索“apples oranges”并在$ fruit变量中传递字符串。 我的搜索出现了:
SELECT * FROM fruits WHERE fruitcolumn LIKE '%$fruit%'
然而,当我搜索“橘子苹果”或“苹果梨”时,没有结果出现,因为该模式与任何条目都不匹配。有没有简单的方法来搜索所有模式组合?
泰
答案 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
。