坑人的Mysql5.7問題(默認(rèn)不支持Group By語句)
Mysql5.7默認(rèn)不支持Group By語句
部署項目時,項目啟動完畢。
點擊有g(shù)roup by 查詢語句時出現(xiàn)錯誤,界面中沒有該有的數(shù)據(jù)。
查詢log日志發(fā)現(xiàn)錯誤
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database_tl.emp.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 。。。。
由于之前也沒有記錄,所以日志信息在網(wǎng)上找了一個大致一樣的。
原因
mysql 5.7 新特性:
點擊打開鏈接 默認(rèn)是不支持GroupBy 語句的。
可以進(jìn)入mysql 命令行中使用
mysql> SELECT @@GLOBAL.sql_mode;
進(jìn)行查詢
結(jié)果為:
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.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)
所以我們需要做的就是將上面畫紅的屬性注掉。
這里為了之后全局,重啟之后也能生效,使用修改配置文件進(jìn)行修改屬性
1.將這個 @@GLOBAL.sql_mode 設(shè)置為空
mysql> set @@GLOBAL.sql_mode=''; Query OK, 0 rows affected, 1 warning (0.00 sec)
2.打開配置文件,這里mysql5.7 的配置文件很詭異
這里我的配置文件的路徑為:
/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
這樣,之前項目中g(shù)roupby 語句就可以使用了
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL5.6 GTID模式下同步復(fù)制報錯不能跳過的解決方法
搭建虛擬機(jī)centos6.0, mysql5.6.10主從復(fù)制,死活不同步,搞了一整天找到這篇文章終于OK了,特分享一下,需要的朋友可以參考下2020-04-04MySQL命令行中給表添加一個字段(字段名、是否為空、默認(rèn)值)
本文介紹MySQL數(shù)據(jù)庫使用SQL語句來在現(xiàn)有的表中,添加一個新的字段,包括設(shè)置字段的是否為空、默認(rèn)值等2016-04-04MySQL窗口函數(shù) over(partition by)的用法
本文主要介紹了MySQL窗口函數(shù) over(partition by)的用法, partition by相比較于group by,能夠在保留全部數(shù)據(jù)的基礎(chǔ)上,只對其中某些字段做分組排序,下面就來介紹一下具體用法,感興趣的可以了解一下2024-02-02MySQL 8.0.19支持輸入3次錯誤密碼鎖定賬戶功能(例子)
這篇文章主要介紹了MySQL 8.0.19支持輸入3次錯誤密碼鎖定賬戶功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01mysql alter table 修改表命令詳細(xì)介紹
MYSQL ALTER TABLE命令用于修改表結(jié)構(gòu),例如添加/修改/刪除字段、索引、主鍵等等,本文章通過實例向大家介紹MYSQL ALTER TABLE語句的使用方法,需要的朋友可以參考一下。2016-10-10