最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql不支持group by的解決方法小結

 更新時間:2020年02月07日 17:10:27   投稿:mdxy-dxy  
下載安裝的是最新版的mysql5.7.x版本,默認是開啟了 only_full_group_by 模式的,但開啟這個模式后,原先的 group by 語句就報錯,然后又把它移除了

下載安裝的是最新版的mysql5.7.x版本,默認是開啟了 only_full_group_by 模式的,但開啟這個模式后,原先的 group by 語句就報錯,然后又把它移除了。

一旦開啟 only_full_group_by ,感覺,group by 將變成和 distinct 一樣,只能獲取受到其影響的字段信息,無法和其他未受其影響的字段共存,這樣,group by 的功能將變得十分狹窄了

only_full_group_by 模式開啟比較好。

因為在 mysql 中有一個函數: any_value(field) 允許,非分組字段的出現(xiàn)(和關閉 only_full_group_by 模式有相同效果)。

具體出錯提示:

[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

1.1. 1、查看sql_mode

select @@global.sql_mode;

1.2. 查詢出來的值為:

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

2、去掉ONLY_FULL_GROUP_BY,重新設置值。

select @@global.sql_mode;

set sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

2.1. 3、上面是改變了全局sql_mode,對于新建的數據庫有效。對于已存在的數據庫,則需要在對應的數據下執(zhí)行:

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

解決辦法大致有兩種:

一:在sql查詢語句中不需要group by的字段上使用any_value()函數
這種對于已經開發(fā)了不少功能的項目不太合適,畢竟要把原來的sql都給修改一遍

3.1.

二:修改my.cnf(windows下是my.ini)配置文件,刪掉only_full_group_by這一項
若我們項目的mysql安裝在ubuntu上面,找到這個文件打開一看,里面并沒有sql_mode這一配置項,想刪都沒得刪。

當然,還有別的辦法,打開mysql命令行,執(zhí)行命令

select @@sql_mode;
這樣就可以查出sql_mode的值,復制這個值,在my.cnf中添加配置項(把查詢到的值刪掉only_full_group_by這個選項,其他的都復制過去):

sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;
如果 [mysqld] 這行被注釋掉的話記得要打開注釋。然后重重啟mysql服務

注:使用命令

set sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

這樣可以修改一個會話中的配置項,在其他會話中是不生效的?!?nbsp;

如果上面的不夠清楚可以參考下面的語句

進入mysql命令行 執(zhí)行如下兩句語句

set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

但是當重啟mysql 問題又會復現(xiàn)

找到my.cnf,編輯它~把以下命令放到合適位置,重啟mysql 服務,OK~報錯沒啦~

[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

注意 sql_model那句話 一定要放在[mysqld] 內容區(qū)域

mysql5.7不支持group by的解決辦法

1、查看sql_mode

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

2、去掉ONLY_FULL_GROUP_BY,重新設置值。

set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

linux 下mysql5.7+使用group by、order by報錯ONLY_FULL_GROUP_BY不修改配置文件

1.進入mysql
2.查詢出sql_mode:

SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;
SELECT @@sql_mode;

發(fā)現(xiàn)前面都有ONLY_FULL_GROUP_BY

3. 在命令行中輸入
set @@GLOBAL.sql_mode=(select replace(@@GLOBAL.sql_mode,‘ONLY_FULL_GROUP_BY',''));
以上三個sql_home都設置一遍,

4.退出mysql重新進入查看sql_mode; 

 

 到這里基本上就差不多了。

相關文章

  • MySQL中表子查詢與關聯(lián)子查詢的基礎學習教程

    MySQL中表子查詢與關聯(lián)子查詢的基礎學習教程

    這篇文章主要介紹了MySQL中表子查詢與關聯(lián)子查詢的基礎學習教程,同時文中也提到了關于關聯(lián)子查詢的查詢效率問題,需要的朋友可以參考下
    2015-12-12
  • MySQL日期函數與時間函數匯總(MySQL 5.X)

    MySQL日期函數與時間函數匯總(MySQL 5.X)

    這篇文章主要給大家介紹了關于MySQL 5.X日期函數與時間函數的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • MySQL隱式轉換造成索引失效的解決辦法

    MySQL隱式轉換造成索引失效的解決辦法

    數據庫優(yōu)化是一個任重而道遠的任務,想要做優(yōu)化必須深入理解數據庫的各種特性,在開發(fā)過程中我們經常會遇到一些原因很簡單但造成的后果卻很嚴重的疑難雜癥,這類問題往往還不容易定位,本文將給大家介紹MySQL隱式轉換造成索引失效的解決辦法,需要的朋友可以參考下
    2025-02-02
  • mysql5.7.21啟動異常的修復方法

    mysql5.7.21啟動異常的修復方法

    這篇文章主要為大家詳細介紹了mysql5.7.21啟動異常的修復方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • IDEA找不到Database的完美解決方法

    IDEA找不到Database的完美解決方法

    IntelliJ IDEA中可以用database來連接數據庫,但也會經常遇到問題,下面這篇文章主要給大家介紹了關于IDEA找不到Database的完美解決方法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • 阿里云Linux CentOS 7.2下自建MySQL的root密碼忘記的解決方法

    阿里云Linux CentOS 7.2下自建MySQL的root密碼忘記的解決方法

    這篇文章主要介紹了阿里云Linux CentOS 7.2下自建MySQL的root密碼忘記的解決方法,需要的朋友可以參考下
    2017-07-07
  • MySQL索引下推的實現(xiàn)示例

    MySQL索引下推的實現(xiàn)示例

    索引下推是MySQL 5.6引入的優(yōu)化技術,旨在減少查詢過程中的不必要行訪問和回表操作,從而提升查詢性能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-10-10
  • 詳解mysql的limit經典用法及優(yōu)化實例

    詳解mysql的limit經典用法及優(yōu)化實例

    這篇文章詳細介紹了mysql的limit經典用法及優(yōu)化實例,有需要的朋友可以參考一下
    2013-09-09
  • MySQL?查詢?并集、交集、差集方式

    MySQL?查詢?并集、交集、差集方式

    這篇文章主要介紹了MySQL?查詢?并集、交集、差集方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • MySQL8.0設置redo緩存大小的實現(xiàn)

    MySQL8.0設置redo緩存大小的實現(xiàn)

    本文主要在MySQL 8.0.30及之后版本中使用innodb_redo_log_capacity參數在線更改redo緩存文件大小,下面就來介紹一下,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02

最新評論

丰宁| 右玉县| 宜宾县| 炉霍县| 织金县| 广灵县| 子洲县| 东宁县| 临泉县| 潼南县| 德阳市| 昌平区| 尼木县| 壶关县| 潼关县| 正定县| 大宁县| 九寨沟县| 定南县| 都昌县| 延寿县| 赤峰市| 梁山县| 红桥区| 信宜市| 天等县| 潞西市| 中宁县| 玉环县| 乳源| 南阳市| 福州市| 琼中| 临泽县| 中超| 荆门市| 兰西县| 揭西县| 洛川县| 大城县| 班玛县|