简体   繁体   English

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

[英]prioritize in TYPO3 logicalOr database query

I want to create a DB query in TYPO3. 我想在TYPO3中创建一个数据库查询。 I want to distinguish between different sys_language_uids. 我想区分不同的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()),

                ]
            );
        }

I want a specific amount of records back, that I set with setLimit(); 我想要返回一定数量的记录,这些记录是使用setLimit()设置的; Lets say the recent languageUid is for spain and 0 is for english. 假设最近的languageUid用于西班牙,0用于英语。 I want 3 records back, but I have only 2 records for spain, so I want the last record in english. 我要回3条记录,但西班牙只有2条记录,所以我要用英语写最后一条记录。 My recent query just give me the ordered records. 我最近的查询只是给我排序的记录。 But can I say that I want first all the spanish records and then, If they are smaller 3, I want the residual in english? 但是我可以说我首先想要所有西班牙语记录,然后再说,如果它们小于3,我想要英语中的剩余记录?

I would do it with the $defaultOrderings. 我会用$ defaultOrderings做到这一点。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM