DB/Mysql
function group_concat [feat.5.7.x]
하서기
2022. 5. 11. 15:03
728x90
반응형
쿼리를 사용하면서 group_concat을 종종 사용하는 경우가 있다.
서브쿼리 사용시 결과를 그룹핑 할때 또는 row의 데이터를 한 결과 값으로 표시하는 경우 사용을 한다.
그런데 group_concat에는... 제한이 있다....
머 당연한거지만....
기본적으로 mysql5.7에서 확인해보면 group_concat 의 값이 1024[1M]로 세팅이 되어 있다.
SHOW VARIABLES LIKE 'group_concat_max_len'; /* 길이 확인 */
group_concat 사용시 데이터 양 및 SEPARATOR에 따라 길이가 길어 질수가 있다... 대부분은 데이터 양이라고 보면 된다.
암튼... 이거 때문에 데이터가 짤리다 보니 필요한 정보를 다 가지고 오지 못하는 상황이 발생 ㅜ.ㅜ
반응형
이걸 해결 하는 방법은 2가지가 있다.
1. mysql 설정 파일에서 변경해야 한다.. 다만 그러면 서버 재시작은 필수
my.ini 또는 my.cnf에 group_concat_max_len=4M 부분을 추가
2. 운영중임 상태에서는 set global을 통해서 적용하면 된다.
SET GLOBAL group_concat_max_len = 1024*5; /* 길이 변경*/
또는
SET GLOBAL group_concat_max_len = 5120; /* 길이 변경*/
위의 방법으로 하면 group_concat 사용시 데이터 짤릴일이 없다...
이보다 압서 group_concat을 쓸때 distinct를 사용부터!!!
728x90
반응형