mysql 5.7 默认开启了sql_mode的条件限制, 但是我修改该后,仍然无效, 不管是通过控制台里面输入 set sql_mode='', set gloale sql_mode = '', set session sql_mode = '',  还是在my.cfn文件里面的 [mysqld] 选项下加入 sql_mode='', 都无法生效,
直接贴图吧
存储过程如下, 存储过程中有对select *  出来的东西进行group by操作, mysql 5.7默认不支持了, 需要group by的字段,必须要select该字段才可以, 查看过mysql的官方手册,他们就是说通上面的几个set命令就可以取消这个限制, 真是无解了,折腾两天了,求大神指教DELIMITER $$
USE `qp_game_loggers`$$
DROP PROCEDURE IF EXISTS `MB_GR_GetBoxResult`$$
CREATE  PROCEDURE `MB_GR_GetBoxResult`(IN iKindId INT(11), IN iUserId INT(11))
LABEL_PROC:
BEGIN
IF iKindId = 0 THEN
SELECT *, SUM(Score) AS TotalScore,MAX(curgame) AS RoundCount FROM gamebox_game_result WHERE boxid IN
(SELECT boxid FROM gamebox_game_result WHERE userid =iUserId 
AND CollectTime >= NOW() - INTERVAL 3600*24*5 SECOND 
ORDER BY CollectTime DESC) GROUP BY userid, boxid ORDER BY CollectTime DESC;
ELSE
SELECT *,SUM(Score) AS TotalScore, MAX(curgame) AS RoundCount FROM gamebox_game_result WHERE boxid IN
(SELECT boxid FROM gamebox_game_result WHERE userid =iUserId 
AND kindid=iKindId AND CollectTime >= NOW() - INTERVAL 3600*24*5 SECOND 
ORDER BY CollectTime DESC) GROUP BY userid, boxid ORDER BY CollectTime DESC;
END IF;
END LABEL_PROC$$
DELIMITER ;

解决方案 »

  1.   

    空的默认值包含了group那个选项  
      

  2.   


    貌似不对吧,  http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html 
    mysql官网解释说"To clear the SQL mode explicitly, set it to an empty string using --sql-mode="" on the command line, or sql-mode="" in an option file."
      

  3.   

    设置完重连下数据库试试,sql语句执行后,数据库不重连,还是会报错的。(希望可以帮到你)
      

  4.   

    楼主解决了吗?我看网上也都是这种回复,我也是改成空了都还是不行,配置文件和navicat直接set都试了,我也是存储过程。