欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql解决only_full_group_by问题

程序员文章站 2023-12-28 11:56:34
...

出错原因

mysql在5.7以上的***sql_mode***中存在***only_full_group_by***模式

在only_full_group_by这种模式下,使用group by语句进行查询时,所要查询的语句必须依赖于group by子句中所列出的列,也就是group by要以查询的字段

可以通过使用查询到存在 only_full_group_by

select @@global.sql_mode; //全局配置
select @@sql_mode;//已存在数据库配置

解決

window在MySQL安装路径下新添***my.ini***

my.ini 注意修改安装路径且 ***sql_mode***必须在***mysqld***之下

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=E:\Mysql8.0.18
# 设置mysql数据库的数据的存放目录
datadir=E:\Mysql8.0.18\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 设置sql_mode,去掉了ONLY_FULL_GROUP_BY
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

重启mysql

相关标签: Mysql系列 mysql

上一篇:

下一篇: