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

mysql不支持group by的解決方法小結(jié)

 更新時間: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 中有一個函數(shù): any_value(field) 允許,非分組字段的出現(xiàn)(和關(guā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,重新設(shè)置值。

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,對于新建的數(shù)據(jù)庫有效。對于已存在的數(shù)據(jù)庫,則需要在對應(yīng)的數(shù)據(jù)下執(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()函數(shù)
這種對于已經(jīng)開發(fā)了不少功能的項目不太合適,畢竟要把原來的sql都給修改一遍

3.1.

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

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

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

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

注:使用命令

set sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

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

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

進入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';

但是當(dāng)重啟mysql 問題又會復(fù)現(xiàn)

找到my.cnf,編輯它~把以下命令放到合適位置,重啟mysql 服務(wù),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] 內(nèi)容區(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,重新設(shè)置值。

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都設(shè)置一遍,

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

 

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

相關(guān)文章

  • MySQL中表子查詢與關(guān)聯(lián)子查詢的基礎(chǔ)學(xué)習(xí)教程

    MySQL中表子查詢與關(guān)聯(lián)子查詢的基礎(chǔ)學(xué)習(xí)教程

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

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

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

    MySQL隱式轉(zhuǎn)換造成索引失效的解決辦法

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

    mysql5.7.21啟動異常的修復(fù)方法

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

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

    IntelliJ IDEA中可以用database來連接數(shù)據(jù)庫,但也會經(jīng)常遇到問題,下面這篇文章主要給大家介紹了關(guān)于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)化技術(shù),旨在減少查詢過程中的不必要行訪問和回表操作,從而提升查詢性能,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • 詳解mysql的limit經(jīng)典用法及優(yōu)化實例

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

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

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

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

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

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

最新評論

罗平县| 黔江区| 天气| 永和县| 招远市| 崇仁县| 都匀市| 玛纳斯县| 江永县| 黄石市| 齐齐哈尔市| 察雅县| 张家界市| 泾川县| 景泰县| 凤山县| 繁昌县| 福海县| 梁河县| 太仆寺旗| 娱乐| 江门市| 广河县| 长子县| 宁海县| 夏邑县| 龙山县| 盐池县| 班戈县| 乐安县| 平舆县| 常熟市| 扎兰屯市| 扎赉特旗| 张掖市| 五大连池市| 栖霞市| 英德市| 安乡县| 廉江市| 邻水|