我用 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。