我想从表格中选择$ cat。
中的$ limit记录foreach($cats as $cat) {
$query = $this->createQuery();
$query->matching($query->equals('type', $cat));
$query->setLimit((int)$limit);
$result[] = $query->execute();
}
是否可以将查询结果组合成一个查询结果?
答案 0 :(得分:2)
我认为您的查询类似于
"SELECT * FROM table_name WHERE type IN ('".$cats."')"
这里$ cats是一个类别数组,
$cats = array("cat1", "cat2", "cat3");
然后extabse查询将是,
$query = $this->createQuery();
$query->matching($query->in('type', $cats));
$query->setLimit((int)$limit);
$result = $query->execute();
在上面的查询中,()检查多值操作数中是否存在单值属性。
答案 1 :(得分:1)
谢谢,我找到了另一种对我有用的方法:
public function findAllLimitedByCategory($limit, $category){
$cats = explode(",",$category);
$result = array();
foreach($cats as $cat) {
$query = $this->createQuery();
$query->matching($query->equals('type', $cat));
$query->setLimit((int)$limit);
$result[] = $query->execute()->toArray();
}
$out = array();
foreach($result as $r)
$out = array_merge($out, $r);
return $out;
}
...但我必须通过php使用此解决方案对数组进行排序