我正在尝试运行查询但是我收到以下错误:
SQL错误(1055):SELECT列表的表达式#14不在GROUP BY子句中,并且包含非聚合列' gamesmart.gps.plays'它在功能上不依赖于GROUP BY子句中的列;这与sql_mode = only_full_group_by
不兼容
当我检查sql_mode
时,session
和global
的设置如下:
那么,为什么它仍然给我这个错误?
Mysql版本:5.7.14
答案 0 :(得分:2)
尝试解决由5.7要求引起的查询:
答案 1 :(得分:0)
以下是我发现的两个选项(我可以做其中一个):
ifnull(gps.plays,0)
转换为此ifnull(gps.plays,0) as plays
。.ini
文件中设置以下内容:[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
答案 2 :(得分:0)
在您的终端中:
mysql -u yourusername -p
然后输入您的密码。它将带您进入MySQL监视器。
撰写此查询:
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
之后,转到etc / mysql / my.cnf,打开文件,然后将代码粘贴到该行下面。
[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
它对我有用。