MySQL WHERE来自一个数组

时间:2014-07-17 17:33:58

标签: php mysql

我有一个包含这些值的数组,1& 5,我正在尝试生成一个mysql查询来返回所有这些值id,我希望这是有道理的,这里是我的代码:

if(isset($filterOpts['location'])){
                        foreach($filterOpts['location'] as $row => $value){
                                $where .= " AND `rb_locations`.`locationId` = " . $value;
                        }
                }

这将返回AND rb_locationslocationId = 1 AND rb_locationslocationId = 5

我猜是AND和AND导致了我的问题。我该如何解决?当我删除5时,它会返回结果。

我没有发布剩余的查询,因为我知道它不是问题:)

有关如何解决此问题的任何建议吗?

1 个答案:

答案 0 :(得分:3)

尝试使用IN clause。它检查值是否在一组值内:

if (isset($filterOpts['location'])) {

   $locationIds = implode(',', $filterOpts['location']);

   $where .= " AND `rb_locations`.`locationId` IN (" . $locationIds . ") ";

}