按字母顺序重新排列Mysql数据

时间:2018-06-21 04:04:44

标签: php mysql arrays codeigniter

我有一个带有学生ID,成绩,班级ID,考试ID的成绩表。 我从

获得了分数和student_id
$mark_query = $this->db->get_where('mark' , 
                                    array('class_id' => $class_id, 
                                           'exam_id' => $exam_id)
                );

在获得分数和student_id之后,我将显示带有学生姓名的分数,该名称是从上述查询中的带有student_id的另一个表中获得的。 我还有另一个表,上面有student_id及其名称。

输出是这样

Sajiv 25
Arun 35
Sonu 32
Binu 45

但是我想按升序显示名称。

有什么想法吗? 我正在使用codeigniter。

2 个答案:

答案 0 :(得分:1)

加入带有标记表的学生表,并按学生姓名的升序排列

    $this->db->select('students_table.name, mark.marks')
    ->from('mark')
    ->join('students_table', 'mark.student_id = students_table.id')
    ->where(['class_id' => $class_id, 'exam_id' => $exam_id])
    ->order_by('students_table.name', 'ASC')
    ->get();

答案 1 :(得分:0)

订购结果

  

$ this-> db-> order_by()

允许您设置ORDER BY子句。

第一个参数包含您要作为排序依据的列的名称。

第二个参数使您可以设置结果的方向。选项包括ASC,DESC。

  

$ this-> db-> order_by('title','DESC');

//产生:ORDER BY title DESC 您还可以在第一个参数中传递自己的字符串:

  

$ this-> db-> order_by('title DESC,name ASC');

//产生:按title DESC,name ASC排序 如果需要多个字段,也可以进行多个函数调用。

  

$ this-> db-> order_by('title','DESC');

     

$ this-> db-> order_by('name','ASC');

//产生:按title DESC,name ASC排序 如果选择RANDOM direction选项,除非指定数字种子值,否则第一个参数将被忽略。

您随时可以检查 CodeIgniter查询生成器以获取帮助。 这是链接:https://www.codeigniter.com/userguide3/database/query_builder.html