codeigniter order by isn&t; t使用零值

时间:2015-08-12 18:38:44

标签: php mysql codeigniter

我已经尝试了

 $this->db->order_by('order_status','asc')
          ->order_by('order_id','asc')
          ->get_where('order', array(
                'customer_id' => $this->session->userdata('user_id')
               )
            )
          ->result_array();

我也试过

 ->order_by('order_status asc,order_id asc')->get_where...

但如果order_status的值为0,则始终为last。 (即,订单的状态为1,2,0)我的order_status字段是TinyInt。我错过了什么? 编辑:表格结果如下:

 | ID | Status |
   25     1
   26     1
   13     2
   16     2
    5     0
   27     0

我需要的是:

 | ID | Status |
    5     0
   27     0
   25     1
   26     1
   13     2
   16     2

1 个答案:

答案 0 :(得分:1)

您通过order_status然后按order_id订购结果FIRST。 解决方案是:

->order_by('order_id asc, order_status asc')->get_where...

这样,你首先按ID订购结果,然后(如果有相同order_id的记录)按order_status订购

我不知道你的代码逻辑,但在这种情况下,我认为这是唯一的解决方案。也许你应该重新考虑你的代码逻辑