在MySql中使用IN Condition进行搜索

时间:2015-05-15 11:57:18

标签: php mysql

我正在cakePhp编写IOS的Web服务并陷入IN状态。

我有一张表dog_temperaments,其值为"happy,dependent,shy"

现在如果IOS发送给我数组(快乐,害羞)那么我就像这样搜索

Select dog_temperaments.* where temperaments IN(happy,shy)

它的工作正常,但如果IOS发送给我数组0或任何(意味着任何气质搜索)那么我将如何搜索........

任何意味着按所有气质搜索

2 个答案:

答案 0 :(得分:3)

如果它是0或任何any,则不需要该条件,因为它应该返回所有条件。

所以aassuming $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

答案 1 :(得分:1)

您可以检查数组是否为空

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);