Symfony Propel Pager-向其发送自定义MySQL查询的正确方法是什么?

这是我需要运行的查询

SELECT REPLACE(REPLACE(SUBSTRING_INDEX(LOWER(table.url), ‘/’, 3), ‘www.’, ”), ‘http://’, ”) AS domain FROM table GROUP BY domain

但是我很难将这样的查询作为标准传递给Propel传呼机.我希望这能奏效.

$criteria->addSelectColumn(‘SUBSTRING_INDEX(‘ . TablePeer::URL . ‘, \’/\’, 3) AS table’);

但不幸的是,事实并非如此.有什么想法可以使用标准方法通过吗?

更新

对于那些感兴趣的人,这就是最终的结果,谢谢!

$criteria->addAsColumn(‘domain’, ‘SUBSTRING_INDEX(‘ . TablePeer::URL . ‘, \’/\’, 3)’);
$criteria->addGroupByColumn(‘domain’);

解决方法:

您需要在您的条件对象中使用Criteria :: CUSTOM和addAsColumn的某种组合-您显然还需要使用doSelectRs(< = 1.2)或doSelectStmt(> = 1.3).我不确定确切的公式是什么,但这可能会为您提供正确的方向(请注意,该链接适用于1.2,因此请根据1.3或1.4的需要更新sysntaxt / api).

http://stereointeractive.com/blog/2009/07/21/propel-criteria-on-custom-columns-with-addascolumn/

上一篇:自定义分页器


下一篇:分页器