Codeigniter数据库错误1055 - 不在GROUP BY中

时间:2015-04-02 13:33:03

标签: php mysql codeigniter

$query = $this->db->group_by('hs_tktno');
$query = $this->db->where('hs_toid', $id);
$query = $this->db->order_by('hs_id', "desc");
$query = $this->db->get('table');
$data["list"] =  $query->result();

我尝试执行上述代码时出现以下错误 任何想法?

  

错误号码:1055

     

'dbname.table.hs_id'不在GROUP BY

中      

SELECT * FROM(table)WHERE hs_status ='0'GROUP BY hs_tktno

2 个答案:

答案 0 :(得分:0)

对于问题并没有太多了解,但你写的查询是错误的。它应该是这样的,

$this->db->group_by('hs_tktno');
$this->db->where('hs_toid', $id);
$this->db->order_by('hs_id', "desc");
$query = $this->db->get('table');

return $query->result();

答案 1 :(得分:0)

我也有这个问题,我找到的解决方案是在服务器中更改my.cnf或my-default.cnf。对于我的情况,我使用的是mac,这个文件可以在/ usr / local / mysql / support-files /

找到

制定解决方案的步骤:

  1. 打开终端
  2. cd /usr/local/mysql/support-files/
  3. sudo vim my.cnf
  4. 一直滚动到底部,然后按i插入
  5. 将现有的slq_mode替换为sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  6. 按esc退出输入模式
  7. 输入:wq以保存并关闭vim
  8. 现在使用sudo /usr/local/mysql/support-files/mysql.server restartsudo service mysql restart
  9. 重新启动您的mysql
  10. 全部完成,您将享受您的编码。玩得开心:))
  11. 对于那些无法找到my.cnf文件的人。标记B答案请参考this。这将帮助您找到您的my.cnf。

    如果您只有my-default.cnf,可以使用命令sudo cp /usr/local/mysql/support-files/my-default.cnf ~/.my.cnf将其复制到〜/ .my.cnf,并记得在此之后重新启动。