#symfony1 #propel
#symfony1 #продвигать
Вопрос:
У меня есть запрос mysql для упорядочивания, используя разницу двух полей одной и той же таблицы
SELECT *
FROM postings
ORDER BY vote_up - vote_down;
его рабочий
Как я пишу этот запрос, используя критерии продвижения,
Я пишу так $criteria->addDescendingOrderByColumn(self::VOTE_UP-self::VOTE_DOWN)
но это приводит к ошибкам. Кто-нибудь знает, пожалуйста, помогите.
Помощь высоко ценится.
Спасибо,
Комментарии:
1. В чем ошибки? Он работает с doctrine без проблем: Doctrine::GetTable(‘Model’)-> CreateQuery(‘m’)-> OrderBy(‘m.vote_up — m.vote_down DESC’)-> выполнить();
2. Какая версия Propel? В ModelCriteria.php в функции getSelectStatement вы можете выполнить это
sfContext::getInstance()->getLogger->log($sql)
после строки, которая гласит$sql = BasePeer::createSelectSql($this, $params);
(или что-то подобное, если в вашей версии Propel это отличается). Это самый простой способ увидеть, какой SQL генерируется; очевидно, удалите debug, когда закончите.
Ответ №1:
Попробуйте:
$criteria->addDescendingOrderByColumn(self::VOTE_UP.' - '.self::VOTE_DOWN)