【发布时间】:2012-05-08 14:24:20
【问题描述】:
我用 codeigniters 数据库库写了一个查询,看起来像这样,
public function getCandidateCredits($candidate_id)
{
$this->db->select('*')
->from('credits')
->join('candidate_has_credits', 'candidate_has_credits.credits_credit_id = credits.credit_id', 'left')
->where('credits.candidates_candidate_id', (int)$candidate_id)
->order_by('candidate_has_credits.date_created', 'DESC')
->order_by('credits.credit_position', 'DESC');
$query = $this->db->get();
return $query->result_array();
}
这个查询的意思是,获取所有成员的积分,然后按日期(最新的在前),然后按积分位置(最高的数字在前)对它们进行排序。
我遇到了一些问题,积分应该按日期排序,但前提是没有积分位置,如果有积分位置 (0 - 999),那么在订购积分时应该优先,如果有日期和信用位置,那么信用应该按信用位置和日期排序。
这可能吗?我觉得我离我需要的地方很远,我返回的结果似乎是返回没有明显的顺序。不确定是否有区别,但 date_created 字段是 DATETIME。
【问题讨论】:
-
您肯定只是想交换
ORDER BY子句吗?
标签: php mysql database codeigniter