mysql异常ERROR 1055 (42000)说明
admin
2023-04-26 15:42:54
0

具体异常信息如下:

ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'aaa.test.age' which is not functionally dependent on columns in GROUP BY clause; 
this is incompatible with sql_mode=only_full_group_by


执行这样的SQL语句可重现异常 select age, name from test group by name

mysql5.1,不报异常

mysql5.5,不报异常

mysql5.6,不报异常

mysql5.7.22,报异常(具体从5.7哪个版本开始还没有确定下来,网上有人说5.7.5


mysql从5.7的某个版本开始调整了默认参数sql_mode值为:

mysql> show variables like 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                                                     |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| sql_mode      | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>

其中ONLY_FULL_GROUP_BY就是影响了上面SQL语句是否报异常


解决方法:

1、改写SQL语句,毕竟上面的写法不是标准的SQL语句

2、登陆mysql服务器,执行以下命令,在global与session级都修改

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';
mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

3、结合第2种方法,在my.cnf文件中,指定sql_mode的值:

[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


注:2与3结合可不用重启服务器,且即使重启配置也依然有效。

相关内容

热门资讯

华为新款MatePad Pro... 【CNMO科技消息】7月30日,@华为终端 官宣全新旗舰平板华为MatePad Pro。 新款华为...
从实验室到实景验证:6G光子太... 全息通信是第六代移动通信(6G)的典型应用场景之一,旨在通过融合无线传输与全息三维成像技术,实现超大...
从“能对话”到“能干活”——人... 【经济界面】 光明日报记者 刘坤 李晓东 周洪双 人工智能(AI)眼镜化身为个人“助理”,实时进行...
【全新发布】UminiP Pr... (来源:洲明科技)
日本通过“H3火箭8号”发射失... △H3火箭(资料图) 日本文部科学省30日召开关于去年“H3火箭8号”发射失败的会议。会议通过的最终...
互联网巨头抢滩健康硬件,上游芯... 封面新闻记者 付文超 当下,互联网巨头对健康硬件的押注,正在成为产业现实,加速拉动整个产业链步入新一...
巨头“整合风暴”进行时,字节跳... 2026年,中国科技巨头相继在内部掀起“整合风暴”,用不同方式重组“AI基因”。 7月30日,字节跳...
当汽车拥有智能“大脑”,车企开... 图片来源:华为智擎 一百多年来,汽车行业一直有一套相对稳定的评价体系。 发动机决定动力,变速箱影响效...
小米澎程首发体验:全尺寸车身霸... 7月30日,在小米召开澎程技术沟通会的当天,澎程N90、N70系列新车也开进了小米汽车门店。 这两款...
实习生薪资万元起步,华为字节抢... 大厂实习薪资暗战:互联网高薪抢人,车企维持薪酬稳态 近日,一位华为松山湖实习生晒出万元月薪和深夜加班...