今天學(xué)習(xí)sql注入的時(shí)候無意間使用了group by,來拆分表,卻發(fā)現(xiàn)以前常用的語法居然報(bào)錯(cuò)了,于是只好百度,查到是一個(gè)配置值在新版本的MySQL中被更改了。
select @@sql_mode;中的一個(gè)ONLY_FULL_GROUP_BY被默認(rèn)開啟了,再來從這篇文章中了解到這個(gè)配置的作用:ONLY_FULL_GROUP_BY。簡單來說就是:輸出的結(jié)果是叫target list,就是select后面跟著的字段,還有一個(gè)地方group by column,就是group by后面跟著的字段。由于開啟了ONLY_FULL_GROUP_BY的設(shè)置,所以如果一個(gè)字段沒有在target list和group by字段中同時(shí)出現(xiàn),或者是聚合函數(shù)的值的話,那么這條sql查詢是被mysql認(rèn)為非法的,會(huì)報(bào)錯(cuò)誤。
至于具體例子,上面的那個(gè)插鏈接例有羅列。接著就是聚合函數(shù)了,mysql常用的聚合函數(shù)有下面這些:avg(),count(),max(),min(),sum()。
新聞熱點(diǎn)
疑難解答
圖片精選