Порядок по разнице между 2 столбцами

#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)