坑人的Mysql5.7問(wèn)題(默認(rèn)不支持Group By語(yǔ)句)
Mysql5.7默認(rèn)不支持Group By語(yǔ)句
部署項(xiàng)目時(shí),項(xiàng)目啟動(dòng)完畢。
點(diǎn)擊有g(shù)roup by 查詢(xún)語(yǔ)句時(shí)出現(xiàn)錯(cuò)誤,界面中沒(méi)有該有的數(shù)據(jù)。
查詢(xún)log日志發(fā)現(xiàn)錯(cuò)誤
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 。。。。
由于之前也沒(méi)有記錄,所以日志信息在網(wǎng)上找了一個(gè)大致一樣的。
原因
mysql 5.7 新特性:
點(diǎn)擊打開(kāi)鏈接 默認(rèn)是不支持GroupBy 語(yǔ)句的。
可以進(jìn)入mysql 命令行中使用
mysql> SELECT @@GLOBAL.sql_mode;
進(jìn)行查詢(xú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)
所以我們需要做的就是將上面畫(huà)紅的屬性注掉。
這里為了之后全局,重啟之后也能生效,使用修改配置文件進(jìn)行修改屬性
1.將這個(gè) @@GLOBAL.sql_mode 設(shè)置為空
mysql> set @@GLOBAL.sql_mode=''; Query OK, 0 rows affected, 1 warning (0.00 sec)
2.打開(kāi)配置文件,這里mysql5.7 的配置文件很詭異
這里我的配置文件的路徑為:
/etc/mysql/mysql.conf.d 下的mysqld.cnf
打開(kāi)找到
[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
這樣,之前項(xiàng)目中g(shù)roupby 語(yǔ)句就可以使用了
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
安裝mysql出錯(cuò)”A Windows service with the name MySQL already exis
這篇文章主要介紹了安裝mysql出錯(cuò)”A Windows service with the name MySQL already exists.“如何解決的相關(guān)資料,在日常項(xiàng)目中此問(wèn)題比較多見(jiàn),特此把解決辦法分享給大家,供大家參考2016-05-05
很全面的MySQL處理重復(fù)數(shù)據(jù)代碼
這篇文章主要為大家詳細(xì)介紹了MySQL處理重復(fù)數(shù)據(jù)的實(shí)現(xiàn)代碼,如何防止數(shù)據(jù)表出現(xiàn)重復(fù)數(shù)據(jù)及如何刪除數(shù)據(jù)表中的重復(fù)數(shù)據(jù),感興趣的小伙伴們可以參考一下2016-05-05
MySQL 客戶(hù)端不輸入用戶(hù)名和密碼直接連接數(shù)據(jù)庫(kù)的2個(gè)方法
MySQL 客戶(hù)端不輸入用戶(hù)名和密碼直接連接數(shù)據(jù)庫(kù)的2個(gè)方法,大家可以測(cè)試下。2009-07-07
MySQL數(shù)據(jù)庫(kù)配置信息查看與修改方法詳解
我們通常把在項(xiàng)目中使用的常量收集在一個(gè)文件,這個(gè)文件就是配置文件,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)配置信息查看與修改的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
Node.js下向MySQL數(shù)據(jù)庫(kù)插入批量數(shù)據(jù)的方法
這篇文章主要介紹了Node.js下向MySQL數(shù)據(jù)庫(kù)插入批量數(shù)據(jù)的實(shí)現(xiàn)方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-10-10
MySql8 WITH RECURSIVE遞歸查詢(xún)父子集的方法
這篇文章主要介紹了MySql8 WITH RECURSIVE遞歸查詢(xún)父子集的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
MySQL自增鎖(Auto-Increment Lock) 的原理使用
MySQL的自增鎖用于確保自增值在并發(fā)插入時(shí)唯一且遞增,本文主要介紹了MySQL自增鎖的原理使用,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03
安裝MySQL時(shí),輸入mysqld --install后,顯式該文件已存在問(wèn)題
這篇文章主要介紹了安裝MySQL時(shí),輸入mysqld --install后,顯式該文件已存在問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12

