相关疑难解决方法(0)

在MySql中执行查询时与only_full_group_by相关的错误

我已经升级了我的系统,并为我正在处理的Web应用程序安装了MySql 5.7.9和php.我有一个动态创建的查询,当在旧版本的MySql中运行时,它可以正常工作.自升级到5.7后,我收到此错误:

SELECT列表的表达式#1不在GROUP BY子句中,并且包含非聚合列'support_desk.mod_users_groups.group_id',它在功能上不依赖于GROUP BY子句中的列; 这与sql_mode = only_full_group_by不兼容

请注意有关服务器SQL模式主题的Mysql 5.7的手册页.

这是给我带来麻烦的查询:

SELECT mod_users_groups.group_id AS 'value', 
       group_name AS 'text' 
FROM mod_users_groups
LEFT JOIN mod_users_data ON mod_users_groups.group_id = mod_users_data.group_id 
WHERE  mod_users_groups.active = 1 
  AND mod_users_groups.department_id = 1 
  AND mod_users_groups.manage_work_orders = 1 
  AND group_name != 'root' 
  AND group_name != 'superuser' 
GROUP BY group_name 
HAVING COUNT(`user_id`) > 0 
ORDER BY group_name
Run Code Online (Sandbox Code Playgroud)

我在这个问题上做了一些谷歌搜索,但我不明白only_full_group_by弄清楚我需要做些什么来修复查询.我可以关掉这个only_full_group_by选项,还是我需要做些什么呢?

如果您需要更多信息,请与我们联系.

mysql sql group-by mysql-error-1055

394
推荐指数
13
解决办法
50万
查看次数

CodeIgniter:如何执行选择(不同的字段名称)MySQL查询

我正在尝试检索字段中所有唯一值的计数.

示例SQL:

SELECT count(distinct accessid) FROM (`accesslog`) WHERE record = '123'
Run Code Online (Sandbox Code Playgroud)

我怎么能在CodeIgniter里面做这种查询?

我知道我可以使用$this->db->query(),并编写自己的SQL查询,但我有其他要求,我想用它$this->db->where().如果我使用->query()虽然我必须自己编写整个查询.

php mysql codeigniter distinct

48
推荐指数
5
解决办法
13万
查看次数

为什么不应该禁用 ONLY_FULL_GROUP_BY

在互联网搜索过程中,我现在看到很多关于禁用该ONLY_FULL_GROUP_BY功能的问题,因此这意味着很多开发人员在这种严格模式下编写 SQL 查询时遇到了麻烦。

我知道禁用此限制非常简单,但现在我问一个问题: 为什么我不应该这样做?

取消限制会带来什么问题或副作用ONLY_FULL_GROUP_BY

mysql group-by aggregation

4
推荐指数
1
解决办法
1401
查看次数