按顺序排列

时间:2017-01-15 18:26:42

标签: php mysql sql codeigniter

$this->db->select('*');
$this->db->from('messages');
$this->db->where('user_id_get', $data['users_id']);
$this->db->group_by('user_id_get');
//$this->db->order_by('id','DESC'); This doesn't work
$data["Query"] = $this->db->get();

我如何在查询(codeigniter)中使用order_by和group_by?

1 个答案:

答案 0 :(得分:0)

我不熟悉codeigniter中的sql处理,但groupBy user_id_getselect *的含义是什么意思?

如果具有相同user_id_get - 值的多个行聚合并仅由其中一个表示,那么除了user_id_get之外的其他属性有什么值呢?实际上,只能采用其中一个分组记录,某些数据库系统采用第一个,其他数据库系统(和SQL标准)甚至禁止使用除group by子句中引用的其他属性。例如,提供此discussion at SO

因此,如果只取一个组中的一个记录,那么它对于除分组属性之外的属性的排序意味着什么,因为这意味着可能对随机选择的值进行排序,对吧? / p>

因此,如果您想获取特定用户的所有消息(如表达式where('user_id_get', $data['users_id']所示),则group by user_id_get会产生误导;我省略了分组,只使用了顺序。

希望我理解您的要求并希望它有所帮助。