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 です。