ONLY_FULL_GROUP_BY是mysql默認的一種sql模式,其作用是約束sql語句:要求select中的所有字段,除復合函數外,全部要出現在group by中。
默認這種模式是有原因的,因為濫用gourp by可能會得到錯誤的結果,但是這里不做討論。
那么如何禁用這種模式呢,執行以下命令:
$ # 查看sql_mode配置
$ mysql> select @@sql_mode
要想永久禁用,將sql_mode寫入 /etc/mysql/mysql.conf.d 下的 mysqld.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
systemctl restart mysql
