这是我需要运行的查询
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/