我想在我的模型中使用下面的查询按降序对数据库值进行排序。但是,它并没有完全按降序排列数据库中的所有值,但是当使用升序时,它运行良好。
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();
}
答案 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();