我正在使用Propel ORM编写查询
查询格式为:
select * from some_table where some_table.created_at = (SELECT MAX(some_table.created_at) from some_table);
我到目前为止:
$c = new Criteria();
$c->addSelectColumn('MAX('.self::CREATED_AT.')');
任何人都知道如何使用Propel来保存我编写RAW SQL吗?
答案 0 :(得分:3)
如果你想知道如何添加自定义WHERE
值,那么@prodigitalson的解决方案应该可行,但我想知道为什么你这样做的方式与第一位相反:
$recs = SomeTableQuery::create()->orderByCreatedAt()->findOne();
...它将为您提供最新创建的记录。
答案 1 :(得分:1)
尝试:
$c = new Criteria();
$c->add(SomeTable::CREATED_AT, '(SELECT MAX('.SomeTable::CREATED_AT.') FROM some_table)', Criteria::CUSTOM);
答案 2 :(得分:1)
这种方式没有提到 - 所以这对我有用:
MyTable::create()
->select('max_id')
->addAsColumn('max_id', 'MAX(id)')
->findOne();
find()返回一个对象集合,因此请使用findOne()
addAsColumn()仅返回选定的列。
答案 3 :(得分:0)
我无法获得 - > withColumn(' MAX(itemrevisionID)')工作,所以解决这个问题 - > orderByitemrevisionID(' desc' )