안 쓰던 데스크톱에 우분투 올리고 APM 설치해서 rhymix 설치했습니다.

 

이것저것 해보던 중 가위바위보 모듈에서 문제가 생겼는데 게임은 잘 되는데 순위가 안나오는겁니다... ;;

 

원인을 분석해본 결과 queries에 보이던쿼리문을 MySQL에 그대로 돌려보니

 

ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'rhymix.rx_rockgame.nick_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

 

오류를 발견!

 

이 문제의 해결 방법이 두 개 있더군요.

 

queries/getRockgamePointRankAsc.xml 과 queries/getRockgamePointRankDesc.xml에서

 

<column name="nick_name" />

<column name="any_value(nick_name)" alias="nick_name" />

 

로 바꾸는 방법하고 sql_mode에서  ONLY_FULL_GROUP_BY를 빼버리는 방법 (my.cnf 파일 수정 필요)

 

지금은 전자를 적용해서 랭킹을 살렸는데 어떤 방향으로 가는게 좋을지 고민입니다... 흐음....

 

(ps: MySQL 버전은 8.0.23입니다!)

  • profile
    ONLY_FULL_GROUP_BY를 빼버리는게 제일 낫습니다.
  • profile profile
    역시 모듈 일일이 수정하는거보단 ONLY_FULL_GROUP_BY 빼는 게 낫겠군요 조언 감사합니다!