坑人的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 查詢語(yǔ)句時(shí)出現(xiàn)錯(cuò)誤,界面中沒(méi)有該有的數(shù)據(jù)。
查詢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)擊打開鏈接 默認(rèn)是不支持GroupBy 語(yǔ)句的。
可以進(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.將這個(gè) @@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
這樣,之前項(xiàng)目中g(shù)roupby 語(yǔ)句就可以使用了
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL5.6 GTID模式下同步復(fù)制報(bào)錯(cuò)不能跳過(guò)的解決方法
搭建虛擬機(jī)centos6.0, mysql5.6.10主從復(fù)制,死活不同步,搞了一整天找到這篇文章終于OK了,特分享一下,需要的朋友可以參考下2020-04-04Mysql實(shí)現(xiàn)增量恢復(fù)的方法詳解
本文給大家分享的是如何實(shí)現(xiàn)mysql增量恢復(fù)的場(chǎng)景以及具體實(shí)現(xiàn)方法,有需要的小伙伴可以參考下2018-07-07MySQL命令行中給表添加一個(gè)字段(字段名、是否為空、默認(rèn)值)
本文介紹MySQL數(shù)據(jù)庫(kù)使用SQL語(yǔ)句來(lái)在現(xiàn)有的表中,添加一個(gè)新的字段,包括設(shè)置字段的是否為空、默認(rèn)值等2016-04-04Mysql 5.7.14 使用常見問(wèn)題匯總(推薦)
本文給大家分享Mysql 5.7.14 使用常見問(wèn)題匯總的相關(guān)知識(shí)及結(jié)合自己的實(shí)踐總結(jié)了相關(guān)原因,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-09-09MySQL窗口函數(shù) over(partition by)的用法
本文主要介紹了MySQL窗口函數(shù) over(partition by)的用法, partition by相比較于group by,能夠在保留全部數(shù)據(jù)的基礎(chǔ)上,只對(duì)其中某些字段做分組排序,下面就來(lái)介紹一下具體用法,感興趣的可以了解一下2024-02-02MySQL 8.0.19支持輸入3次錯(cuò)誤密碼鎖定賬戶功能(例子)
這篇文章主要介紹了MySQL 8.0.19支持輸入3次錯(cuò)誤密碼鎖定賬戶功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01mysql alter table 修改表命令詳細(xì)介紹
MYSQL ALTER TABLE命令用于修改表結(jié)構(gòu),例如添加/修改/刪除字段、索引、主鍵等等,本文章通過(guò)實(shí)例向大家介紹MYSQL ALTER TABLE語(yǔ)句的使用方法,需要的朋友可以參考一下。2016-10-10