2013-03-07 9 views
9

私のモデルでは、このクエリを使用してデータベースの値を降順でソートします。ただし、データベースのすべての値を降順で完全にソートするわけではありませんが、昇順を使用するとうまく機能します。あなたがバイナリソートにCodeIgniterの上で手動で追加する必要があり

ORDER BY BINARY course_name DESC; 

$this->db->select('*'); 
$this->db->from('courses'); 
$this->db->where('tennant_id',$tennant_id); 
$this->db->order_by("UPPER(course_name)","desc"); 

またはバイナリを試してみてください:どこで、最後にORDER_BY前から入れ

function sort_all_courses_desc($tennant_id) 
{ 
    $this->db->select('*'); 
    $this->db->where('tennant_id',$tennant_id); 
    $this->db->order_by("course_name","desc"); 
    $this->db->from('courses'); 
    $query=$this->db->get(); 
    return $query->result(); 
} 
+3

私はそれがコース名の場合と関係があると思われます。これはテストされていませんが、おそらく、比較のためにケースを標準化しようとする可能性があります。 '$ this-> db-> order_by(" LOWER(course_name) "、" desc ");' –

+1

"O"は最後にチェックした "S"の前に来ます。これは正しい降順です! – landons

答えて

9

"course_name"文字列を設定します。

ソートが文字型の列で使用されている場合、通常、並べ替えは大文字小文字を区別しない形で行われます( )。

コーステーブルの構造データはどのようなタイプですか? (参考:http://php.net/manual/en/function.natcasesort.php)の例として、データベースから

あなたの配列:$array_db = $result_from_db

「自然順」に注文

使用natcasesort:

は、あなたは、配列の中に入れて使用してPHPを返すことができますイライラしている場合

$final_result = natcasesort($array_db); 

print_r($final_result); 
3

クエリの上部にライン $this->db->order_by("course_name","desc"); を入れてください。 Like

$this->db->order_by("course_name","desc");$this->db->select('*'); 
$this->db->where('tennant_id',$tennant_id); 
$this->db->from('courses'); 
$query=$this->db->get(); 
return $query->result(); 
関連する問題