Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用两个order by的codeigniter活动记录查询_Php_Mysql_Codeigniter - Fatal编程技术网

Php 使用两个order by的codeigniter活动记录查询

Php 使用两个order by的codeigniter活动记录查询,php,mysql,codeigniter,Php,Mysql,Codeigniter,我是CI新手,我有个问题 我的常规sql是: $tb1 = 'se_avg'; $tb2 = 'se_school'; $sql_top = "(SELECT * FROM $tb1 ,$tb2 WHERE $tb1.sid = $tb2.sid AND gid = '$gid' AND avg_mark > $s_mark AND $tb1.year = '2014' ORDER BY avg_mark ASC LIMIT 0 , 20) ORDER BY vg_mark DESC"

我是CI新手,我有个问题

我的常规sql是:

$tb1 = 'se_avg';
$tb2 = 'se_school';

$sql_top = "(SELECT * FROM $tb1 ,$tb2 WHERE $tb1.sid = $tb2.sid AND gid = '$gid' AND avg_mark > $s_mark  AND $tb1.year = '2014' ORDER BY avg_mark ASC LIMIT 0 , 20) ORDER BY vg_mark DESC";
我想在CI活动记录中重写它

但我不知道在sql之外再下一个订单:

$sql_top = "(SELECT * FROM $tb1 ,$tb2 WHERE $tb1.sid = $tb2.sid AND gid = '$gid' AND avg_mark > $s_mark  AND $tb1.year = '2014' ORDER BY avg_mark ASC LIMIT 0 , 20)
现在,我的CI活动记录是:

$tb1 = 'se_avg';
$tb2 = 'se_school';

$sql_top = $this->db
           ->select('*')
           ->from($tb1)
           ->join($tb2, "$tb1.sid = $tb2.sid", 'left')
           ->where('gid', $gid)
           ->where('avg_mark >', $s_mark)
           ->where("$tb1.year", '2014')
           ->order_by("avg_mark", 'asc')
           ->limit(20, 0);

$query = $this->db->get();
我可以在哪里添加订单((“平均标记”,“描述”)

我试着把它放在极限之后,但我得到了错误的数据

也许还有别的办法

谢谢!

  • 在查询中进行以下更改,您将获得所需的结果
  • 更改包含平均标记的表

->订购人(“$tb1.平均标记”,“描述”)

您正在尝试按
avg_mark
升序和降序排列结果?嗯……是的。首先,我按$tb1.avg_mark升序排列结果,然后按$tb1.avg_mark降序排列结果。为什么要这样做?如果您要按相同的东西升序,然后降序,则与或相同通过降序对查询排序(因为这是一个查询)。如果您想得到两组独立的结果,请编写两个查询,否则这没有意义。我解决了这个问题!谢谢大家!哦!对不起,我没有写清楚。avg_标记仅来自$tb1,而不是来自两个表