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
或any
any
,则不需要该条件,因为它将返回所有条件

因此,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
为空,它会给出可能不是我认为的标准的所有结果….(可能是),然后只添加一些默认条件
默认条件
可能不被视为搜索逻辑对吗