TYPO3 Extbase:结合多个查询

时间:2015-06-24 14:38:16

标签: php sql typo3 extbase

我想从表格中选择$ cat。

中的$ limit记录
foreach($cats as $cat) {
    $query = $this->createQuery();
    $query->matching($query->equals('type', $cat));
    $query->setLimit((int)$limit);
    $result[] = $query->execute();
}

是否可以将查询结果组合成一个查询结果?

2 个答案:

答案 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();

在上面的查询中,()检查多值操作数中是否存在单值属性。

有关详细信息,请参阅:http://docs.typo3.org/typo3cms/ExtbaseFluidBook/6-Persistence/3-implement-individual-database-queries.html

答案 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使用此解决方案对数组进行排序