11

モデルで以下のクエリを使用して、データベースの値を降順で並べ替えたいと考えています。ただし、データベース内のすべての値を完全に降順に並べ替えるわけではありませんが、昇順を使用するとうまく機能します。

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();
}
4

3 に答える 3

11

from where の前に配置し、order_by を最後に配置:

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

またはバイナリを試してください:

ORDER BY BINARY course_name DESC;

バイナリソート用の codeigniter を手動で追加する必要があります。

そして「コース名」の文字列を設定します。

文字型の列でソートを使用する場合、通常、ソートは大文字と小文字を区別しない方法で実行されます。

コーステーブルの構造データのタイプは何ですか?

イライラする場合は、配列に入れて PHP を使用して返すことができます。

「自然な順序」での順序には natcasesort を使用します: (参照: http://php.net/manual/en/function.natcasesort.php )

例としてデータベースからの配列: $array_db = $result_from_db:

$final_result = natcasesort($array_db);

print_r($final_result);
于 2013-03-08T01:33:02.113 に答える