如何解决SELECT列表的表达式#1不在GROUP BY子句中,并且包含未聚合的列仅在共享主机cPanel中出现错误
我正在使用Codeigniter 3开发一个项目。一切都很好,但是当我将项目上传到共享托管cPanel时。我收到此错误。
错误号:42000/1055
SELECT列表的表达式#1不在GROUP BY子句中,并且包含 非汇总列“ siyabdev_smart_school.classes.id”,不是 功能上取决于GROUP BY子句中的列;这是 与sql_mode = only_full_group_by
不兼容
问题仅出现在cPanel中。我尝试在共享托管的 phpmyadmin 中编辑变量。 (尝试编辑sql_mode并删除ONLY_FULL_GROUP_BY
),但出现权限错误。
#1227-访问被拒绝,您需要(至少一种)超级权限才能进行此操作。
我陷入困境并搜索了类似的问题 ,但这没有帮助 。任何想法如何摆脱这些错误。
我的代码。
public function get_classes () {
$q = $this->db->select('
`classes`.`id`,`classes`.`class`,GROUP_CONCAT(`sections`.`section`) AS sections,`classes`.`created_at`
')
->join('classes','`classes`.`id` = `class_sections`.`class_id`','inner')
->join('sections','`sections`.`id` = `class_sections`.`section_id`','inner')
->group_by("`classes`.`class`")
->get('class_sections');
return $q->result();
}
解决方法
您是否尝试过ANY_VALUE
在您的查询中,您有按类别分组,但在选择中,有id,created_at 尝试这样
$q = $this->db->select('
ANY_VALUE(`classes`.`id`) AS id,`classes`.`class`,GROUP_CONCAT(`sections`.`section`) AS sections,ANY_VALUE(`classes`.`created_at`) AS created_at
')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。