mysql-8.0.25 执行sql update 时提示 [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY

数据可以修改成功,但后面会提示[Err] 1055错误
根据网上的方法在my.ini 原本没有sql_mode, 进行添加sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION;重启了mysql,但还是报这个错

img

img

请参考 https://blog.csdn.net/zx1293406/article/details/103401803

去掉only_full_group_by

只需要把默认的sql_mode中的only_full_group_by值删除即可。

查看sql_mode的值

select @@sql_mode;

select @@session.sql_mode;

全局级别sql_mode查看

select @@global.sql_mode;

通过上图中的结果我们可以看到sql_mode中有only_full_group_by。

3、修改sql_mode

set sql_mode=(select replace(@@sql_mode,'only_full_group_by',''));

修改全局sql_mode

set @@global.sql_mode=(select replace(@@global.sql_mode,'only_full_group_by',''));

4、因为MySQL重启时会重新读取配置文件里对应值,如果需永久生效需要修改配置文件里的值。

修改MySQL安装目录下的my.ini文件(Linux版本是my.cnf文件)中sql_mode的值

5、重启即可生效。

不要在意,根本不影响结果,如果你有强迫症那就不要使用这个版本的navicat了,换成15试试,再不行就直接不用这个软件,使用其他的链接工具

sql语句不对,需要修改