我有一个包含这些值的数组,1& 5,我正在尝试生成一个mysql查询来返回所有这些值id,我希望这是有道理的,这里是我的代码:
if(isset($filterOpts['location'])){
foreach($filterOpts['location'] as $row => $value){
$where .= " AND `rb_locations`.`locationId` = " . $value;
}
}
这将返回AND rb_locations
。locationId
= 1 AND rb_locations
。locationId
= 5
我猜是AND和AND导致了我的问题。我该如何解决?当我删除5时,它会返回结果。
我没有发布剩余的查询,因为我知道它不是问题:)
有关如何解决此问题的任何建议吗?
答案 0 :(得分:3)
尝试使用IN
clause。它检查值是否在一组值内:
if (isset($filterOpts['location'])) {
$locationIds = implode(',', $filterOpts['location']);
$where .= " AND `rb_locations`.`locationId` IN (" . $locationIds . ") ";
}