首页 > 解决方案 > 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,我想要英文的残差吗?

标签: sqlconstraintstypo3

解决方案


我会用 $defaultOrderings 来做。

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

推荐阅读