TYPO3逻辑或数据库查询中的优先级

时间:2018-07-25 12:34:49

标签: sql constraints typo3

我想在TYPO3中创建一个数据库查询。我想区分不同的sys_language_uids。

        $lanuageUid = $demand->getLanguageUid();
        if (isset($lanuageUid)) {
            $constraints['sys_language_uid'] = $query->logicalOr(
                [
                    $query->equals('sys_language_uid', 0),
                    $query->equals('sys_language_uid', $demand->getLanguageUid()),

                ]
            );
        }

我想要返回一定数量的记录,这些记录是通过setLimit()设置的; 假设最近的languageUid用于西班牙,0用于英语。 我要回3条记录,但西班牙只有2条记录,所以我要用英语写最后一条记录。 我最近的查询只是给我排序的记录。但是我可以说我首先想要所有西班牙记录,然后再说,如果它们小于3,我想要英语中的剩余记录?

1 个答案:

答案 0 :(得分:1)

我可以使用$ defaultOrderings来做到这一点。

$this->setDefaultOrderings([
    'sys_language_uid' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING
]);