No matter the order I arrange my Criteria, the last parameter is always mostly overridden by (I believe) the first two digits of the first where clause value.
- Code: Select all
$selected_seismo_data_list = array(86,88,89,91,92,94,120);
$start = '2010-09-01 00:00:00';
$end = '2010-09-30 23:59:59';
$value ='110';
$event_c = new Criteria();
$event_c->add(ActivitySeismoInfoPeer::ASI_ACTIVITY_ID, null, Criteria::ISNOTNULL);
$event_c->add(ActivitySeismoInfoPeer::ASI_SEISMO_ID, $selected_seismo_data_list, Criteria::IN);
$event_c->add(ActivitySeismoInfoPeer::ASI_PEAK_SOUND, $value, constant('Criteria::'.strtoupper($comparator)));
$start_crit = $event_c->getNewCriterion(ActivitySeismoInfoPeer::ASI_EVENT_TIME, $start, Criteria::GREATER_EQUAL);
$end_crit = $event_c->getNewCriterion(ActivitySeismoInfoPeer::ASI_EVENT_TIME, $end, Criteria::LESS_EQUAL);
$start_crit->addAnd($end_crit);
$event_c->add($start_crit);
$event_c->addDescendingOrderByColumn(ActivitySeismoInfoPeer::ASI_EVENT_TIME);
$this->event_list = ActivitySeismoInfoPeer::doSelectJoinActivityInfo($event_c);
And the SQL that is executed is:
- Code: Select all
SELECT .....
FROM `activity_seismo_info`
LEFT JOIN activity_info ON (activity_seismo_info.ASI_ACTIVITY_ID=activity_info.ID)
WHERE
activity_seismo_info.ASI_ACTIVITY_ID IS NOT NULL AND
activity_seismo_info.ASI_PEAK_SOUND>'110' AND
activity_seismo_info.ASI_SEISMO_ID IN (86,88,89,91,92,94,120) AND
(
activity_seismo_info.ASI_EVENT_TIME>='2010-09-01 00:00:00' AND
activity_seismo_info.ASI_EVENT_TIME<='110'0
)
ORDER BY activity_seismo_info.ASI_EVENT_TIME DESC
Any help would be greatly appreciated.
Thanks
patrick
