【问题标题】:Extbase query to compare two fields in same tableExtbase 查询比较同一张表中的两个字段
【发布时间】:2017-01-22 16:14:33
【问题描述】:

是否可以在查询 api 中比较两个数据库字段?例如,我想比较字段 tstamp 和 crdate,例如:

SELECT * FROM tt_content WHERE tstamp > crdate;

在查询 api 中我找不到解决方案。在循环中获取所有记录并比较字段不是一种执行方式,因为这可能超过 200 万条记录(在我的实际情况下)。

感谢您的帮助。

【问题讨论】:

    标签: typo3 extbase


    【解决方案1】:

    我能想到的唯一方法(并且查询构建器支持)是直接提供语句。它看起来像这样:

    $query = $contentElementRepository->createQuery();
    $query->statement('SELECT * FROM tt_content WHERE tstamp > crdate');
    $matchingContentElements = $query->execute();
    

    这可能会破坏数据库抽象层,因此请谨慎使用。 statement() 有第二个参数,您可以在其中放置参数,以防您在查询中需要一些用户输入。

    也许还有另一种我不知道的方法,我自己会对它很感兴趣。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多