某個員工信息表結(jié)構(gòu)和數(shù)據(jù)如下:
id name dept salary edlevel hiredate
1 張三 開發(fā)部 2000 3 2009-10-11
2 李四 開發(fā)部 2500 3 2009-10-01
3 王五 設(shè)計部 2600 5 2010-10-02
4 王六 設(shè)計部 2300 4 2010-10-03
5 馬七 設(shè)計部 2100 4 2010-10-06
6 趙八 銷售部 3000 5 2010-10-05
7 錢九 銷售部 3100 7 2010-10-07
8 孫十 銷售部 3500 7 2010-10-06
例如薪缆,我想列出每個部門最高薪水的結(jié)果呕童,sql語句如下:
SELECT DEPT, MAX(SALARY) AS MAXIMUM
FROM STAFF
GROUP BY DEPT
結(jié)果出現(xiàn)sql_mode=only_full_group_by錯誤
1遍尺、查看sql_mode
select @@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 @@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你弦、上面是改變了全局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';
問題解決