99久久国产露脸精品麻豆,欧美日韩精品小说,亚洲免费在线美女视频,国产三级中文字幕,91极品国产情侣高潮对白,国产亚洲一区二区三区不卡片,欧美jizz精品欧美性,久久国产精品久久国产片

[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ'

管理員 7341次瀏覽

摘要:MySQL升級5.7以后經常會出現這種錯誤:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and co...

MySQL升級5.7以后經常會出現這種錯誤:


[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by


雖然不影響SQL執行,但看起來總是不爽!

既然是版本的問題,那就查詢一下配置看看具體的情況,命令行連接上數據庫,輸入命令:

select @@sql_mode;


你會看到sql_mode的配置情況:

@@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


其中ONLY_FULL_GROUP_BY就是造成這個錯誤的罪魁禍首了,

對于group by聚合操作,如果在select中的列沒有在group by中出現,那么這個SQL是不合法的,因為列不在group by從句中,所以設置了sql_mode=only_full_group_by的數據庫,在使用group by時就會報錯,

既然知道了問題,那么修改這個配置就可以了,找到MySQL的配置文件,Windows系統配置文件為安裝MySQL目錄下的my.ini文件,linux系統是/etc/my.cnf文件,查詢sql_mode字段,我并沒有在配置文件中找到這個關鍵字,所以我手動添加進去:

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'


需要注意的一點是一定要添加在[mysqld]配置內,這樣添加完后重啟mysql才會生效,


重啟mysql:

service mysqld restart;


刷新頁面報錯信息消失成功解決,再次連接上數據庫查看sql_mode配置:

select @@sql_mode;

@@sql_mode
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


隨機內容

表情

共0條評論
  • 這篇文章還沒有收到評論,趕緊來搶沙發吧~