Php 在MySql中使用IN-Condition进行搜索
我正在用Php 在MySql中使用IN-Condition进行搜索,php,mysql,Php,Mysql,我正在用cakePhp为IOS编写Web服务,并且陷入了状态 我有一张表,上面写着狗的性情,还有“快乐、依赖、害羞”的价值观 现在,如果IOS向我发送数组(高兴,害羞),那么我会像这样搜索 选择狗的脾气。*哪里有脾气(快乐,害羞) 它的工作很好,但如果IOS向我发送数组0或任何(意味着搜索任何气质),那么我将如何搜索 任何方法按所有气质进行搜索您可以检查数组是否为空或是否类似 if(is_array($array)) { Use Select dog_temperaments.
cakePhp
为IOS编写Web服务,并且陷入了状态
我有一张表,上面写着狗的性情,还有“快乐、依赖、害羞”的价值观
现在,如果IOS向我发送数组(高兴,害羞),那么我会像这样搜索
选择狗的脾气。*哪里有脾气(快乐,害羞)
它的工作很好,但如果IOS向我发送数组0或任何(意味着搜索任何气质),那么我将如何搜索
任何方法按所有气质进行搜索您可以检查数组是否为空或是否类似
if(is_array($array)) {
Use
Select dog_temperaments.* where temperaments IN('happy','shy');
} else {
notify Enter proper search key
}
否则,如果数组为空,则使用相同的查询获得空结果,如
Select dog_temperaments.* where temperaments IN(0);
如果它是0
或anyany
,则不需要该条件,因为它将返回所有条件
因此,asuming$type
将包含气质作为一个数组,而0
/any
将是该情况下的单个元素
if(count($type) == 1 && in_array(($type[0], array('0', 'any'))) {
$condition = "";
} else {
$condition = "WHERE temperaments IN ('" . implode("','", $type) . "')";
}
而查询将类似于-
"Select dog_temperaments.* from dog_temperaments ".$condition
然后删除
子句中的,如果是这种情况,那么0或任何值是什么意思?澄清并添加您尝试过的代码。在搜索查询之前设置一个条件,即如果数组未形成或为空,则从查询中删除。任何方式按所有气质搜索您可能必须执行一个凌乱的数组。每个{query.append“或气质=”}
这可能是OP正在查找的内容您忘记了引号,或者如果可能,创建动态占位符,然后绑定所需的值回答得好,但我的问题是,如果$condition
为空,它会给出可能不是我认为的标准的所有结果….(可能是),然后只添加一些默认条件默认条件
可能不被视为搜索逻辑对吗