坑人的Mysql5.7問題(默認不支持Group By語句)
Mysql5.7默認不支持Group By語句
部署項目時,項目啟動完畢。
點擊有group 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 新特性:
點擊打開鏈接 默認是不支持GroupBy 語句的。
可以進入mysql 命令行中使用
mysql> SELECT @@GLOBAL.sql_mode;
進行查詢
結果為:
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@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)
所以我們需要做的就是將上面畫紅的屬性注掉。
這里為了之后全局,重啟之后也能生效,使用修改配置文件進行修改屬性
1.將這個 @@GLOBAL.sql_mode 設置為空
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
這樣,之前項目中groupby 語句就可以使用了
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
MySQL5.6 GTID模式下同步復制報錯不能跳過的解決方法
搭建虛擬機centos6.0, mysql5.6.10主從復制,死活不同步,搞了一整天找到這篇文章終于OK了,特分享一下,需要的朋友可以參考下2020-04-04MySQL命令行中給表添加一個字段(字段名、是否為空、默認值)
本文介紹MySQL數(shù)據(jù)庫使用SQL語句來在現(xiàn)有的表中,添加一個新的字段,包括設置字段的是否為空、默認值等2016-04-04MySQL窗口函數(shù) over(partition by)的用法
本文主要介紹了MySQL窗口函數(shù) over(partition by)的用法, partition by相比較于group by,能夠在保留全部數(shù)據(jù)的基礎上,只對其中某些字段做分組排序,下面就來介紹一下具體用法,感興趣的可以了解一下2024-02-02MySQL 8.0.19支持輸入3次錯誤密碼鎖定賬戶功能(例子)
這篇文章主要介紹了MySQL 8.0.19支持輸入3次錯誤密碼鎖定賬戶功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01