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

时间:2013-03-07 13:20:52

标签: 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();
}

3 个答案:

答案 0 :(得分:9)

从最前面的地方开始,然后在最后一次点击:

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

或尝试BINARY:

ORDER BY BINARY course_name DESC;

您应该在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);

答案 1 :(得分: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();

答案 2 :(得分:1)

$this->db1->where('tennant_id', $tennant_id);
$this->db1->order_by('id', 'DESC');
return $this->db1->get('courses')->result();