MySQL 錯誤1055 永久解決方案

2021-10-04 21:32:23 字數 1376 閱讀 7986

問題描述:在mysql資料庫下,執行sql插入語句報錯或者進入資料庫時。出現1055錯誤資訊。

錯誤原因:在mysql5.7之後,sql_mode中預設存在only_full_group_by,sql語句未通過only_full_group_by語義檢查所以報錯。

only_full_group_by:only_full_group_by要求select語句中查詢出來的列必須是明確的(其他語句也是一樣)。

以sql語句select columes from table group by list為例:columns必須是聚集函式或者在group by後的表示式list中,並且list中必須包含主鍵,否則也會報錯。

insert、update、delete語句都會報錯(但不影響sql語句的執行),因為這三種語句執行之前也會執行查詢操作。

以主鍵為id的表為例:

select count(1) from customer group byname;該sql執行成功,因為count是聚集函式;

select * from customer group byname;該sql執行失敗,因為*中包含主鍵id,而group by後的表示式中並沒有包含id

select name from customer group byname;該sql執行成功,因為name包含在group by後的表示式中

select name, contact from customer group byname;該sql執行失敗,因為contact沒有包含在group by後的表示式中

解決方案:

一、永久解決

1)在mysql下執行select @@sql_mode語句

2)將查詢結果中的only_full_group_by去掉然後複製,開啟mysql的配置檔案,將sql_mode的值設定為複製的值(若沒有sql_mode在[mysqld]下方新增一行即可)。

mysql配置檔案所在位置:安裝版可通過windows服務所對應mysql啟動項,檢視其對應屬性->可執行檔案路徑,獲取my.ini路徑。

免安裝版一般在其根目錄下。(預設是my-default.ini,必須將名字改為my.ini才能生效)

sql_mode=…(刪掉only_full_group_by的那段)

3)重新mysql服務即可生效!

詳見:

解決mysql中錯誤1055問題

今天執行sql語句發現了這個錯誤,然後他就像蟑螂一樣頻繁出現在我的sql中,雖然不影響sql語句的執行,但是他真的很煩人。解決辦法 一勞永逸的辦法就是將sql mode中的only full group by刪除。首先找到mysql的配置檔案,找到sql mode,將其only full group...

MySQL錯誤1055 GROUP BY問題

問題描述 在mysql資料庫下,執行sql插入語句報錯。錯誤資訊如下 錯誤原因 在mysql5.7之後,sql mode中預設存在only full group by,sql語句未通過only full group by語義檢查所以報錯。only full group by only full gr...

力扣184題,MySQL錯誤1055

問題描述 在mysql資料庫下,執行sql插入語句報錯。錯誤資訊如下 錯誤原因 在mysql5.7之後,sql mode中預設存在only full group by,sql語句未通過only full group by語義檢查所以報錯。only full group by only full gr...