我想在我的模型中使用下面的查询按降序对数据库值进行排序.但是,它并没有完全按降序排列数据库中的所有值,但是当使用升序时,它运行良好.
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)
放在之前,最后是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)
将该行
$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)
| 归档时间: |
|
| 查看次数: |
100654 次 |
| 最近记录: |