Codeigniter $ this-> db-> order_by('','desc')结果不完整

Eli*_*Eli 10 php codeigniter

我想在我的模型中使用下面的查询按降序对数据库值进行排序.但是,它并没有完全按降序排列数据库中的所有值,但是当使用升序时,它运行良好.

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();
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*vac 9

放在之前,最后是order_by:

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

或者尝试BINARY:

ORDER BY BINARY course_name DESC;
Run Code Online (Sandbox Code Playgroud)

您应该在codeigniter上手动添加以进行二进制排序.

并设置"course_name"字符列.

如果在字符类型列上使用排序,通常排序是以不区分大小写的方式进行的.

课程表中的结构数据类型是什么?

如果你感到沮丧,你可以放入数组并使用PHP返回:

在"自然顺序"中使用natcasesort进行排序:(参考:http://php.net/manual/en/function.natcasesort.php )

您的数组来自数据库示例$array_db = $result_from_db:

$final_result = natcasesort($array_db);

print_r($final_result);
Run Code Online (Sandbox Code Playgroud)


faz*_*bbi 5

将该行 $this->db->order_by("course_name","desc"); 放在查询的顶部.喜欢

$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();
Run Code Online (Sandbox Code Playgroud)