當(dāng)SQL語句查詢報(bào)1055錯(cuò)誤時(shí)的解決方法
報(bào)錯(cuò)內(nèi)容如下
報(bào)錯(cuò)原因
1.SQL語句中使用了group by
,并且不需要分組的字段沒有加上any_value()函數(shù)
2.MySQL數(shù)據(jù)庫版本是大于5.7,報(bào)錯(cuò)信息中最后有一句sql_mode=ONLY_FULL_GROUP_BY,是因?yàn)镸ySQL數(shù)據(jù)庫的配置中sql_mode包含ONLY_FULL_GROUP_BY,導(dǎo)致使用group by
會(huì)報(bào)錯(cuò)
ONLY_FULL_GROUP_BY 含義:對(duì)于GROUP BY聚合操作,如果在SELECT中的列,沒有在GROUP BY中出現(xiàn),那么這個(gè)SQL是不合法的,因?yàn)榱胁辉贕ROUP BY從句中。在嚴(yán)格模式下,不要讓GROUP BY部分中的查詢指向未選擇的列,否則報(bào)錯(cuò)。
解決辦法
解決辦法共計(jì)3種,兩種需要改配置,一種不需要
1.不修改任何配置文件,但給不需要分組的字段上加上any_value()函數(shù)
SELECT any_value(id),value FROM table_name group by value;
這種方法不需要改配置,但是每條使用group by
的SQL語句都要加上any_value()函數(shù)
2.臨時(shí)更改配置,下次重啟電腦或者M(jìn)ySQL服務(wù)時(shí)會(huì)失效
首先在數(shù)據(jù)庫中查詢下列代碼
select @@global.sql_mode
得到如下結(jié)果:
發(fā)現(xiàn)里面有ONLY_FULL_GROUP_BY
在查詢中繼續(xù)執(zhí)行下列代碼,其中等號(hào)后面的就是剛才查到的代碼去掉 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';
這時(shí)再重新測(cè)試之前報(bào)錯(cuò)的SQL語句,應(yīng)該會(huì)可用了
如果不可用,再執(zhí)行下列兩條語句:
select @@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';
就可以了
3.永久更改配置,下次重啟電腦或者M(jìn)ySQL服務(wù)時(shí)不會(huì)失效
第一步,先運(yùn)行下列語句
select @@sql_mode
第二步,打開MySQL的配置文件(window的時(shí)my.ini,一般會(huì)在安裝目錄的根目錄,Linux是my.cnf,一般會(huì)放在/etc/my.cnf,/etc/mysql/my.cnf。如果找不到,可以用find命令查找)
第三步,在配置文件中找到 [mysqld]
,在他下面填入文章來源:http://www.zghlxwxcb.cn/news/detail-406460.html
[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
第四步,停止之后再重啟MySQL
停止mysqlsystemctl stop mysql
或者net stop mysql
重啟mysqlsystemctl restart mysql
或者net start mysql
window用戶可以在服務(wù)中重啟MySQL:win+R,輸入services.msc,點(diǎn)確定找到mysql服務(wù),重啟即可解決問題文章來源地址http://www.zghlxwxcb.cn/news/detail-406460.html
到了這里,關(guān)于MySQL查詢出現(xiàn)1055錯(cuò)誤的解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!