>  기사  >  데이터 베이스  >  MySQL에서 group_concat() 함수를 사용하는 예제에 대한 자세한 설명

MySQL에서 group_concat() 함수를 사용하는 예제에 대한 자세한 설명

零下一度
零下一度원래의
2017-07-03 09:30:481204검색

최근 직장에서 문제가 발생했습니다.

저희 시스템의 일부 논리적 처리가 저장 프로시저를 사용하여 구현되었지만 어느 날 고객 서비스에서 주문과 관련된 기본 제품 리소스를 확인한 후 주문이 실패했다고 보고했습니다. 문제없었어요.

주문을 하는 저장 프로시저에는 두 줄의 코드가 있습니다.

1   declare _err int default 0;2   DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1;3   DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' set _err=2;

저장 프로시저를 실행한 후 변수 _err은 1을 반환합니다. 저장 프로시저를 디버그하여 문제를 찾을 수만 있습니다. 다음 문단을 디버깅해 보니 이 sql을 실행한 후 _err이 1

1 select group_concat(concat(@room_name,',',run_date,',',total_count) separator '|') into @order_desc from tmp_order_detail order by run_date;

이 된 것을 발견했습니다. 임시 테이블 tmp_order_detail에 데이터가 많아서 group_concat 문제인 줄 알고 The 임시 테이블의 데이터가 절반으로 줄어들었고 성공한 것으로 확인되어 group_concat에 길이 제한이 있는지 추측하고 구글링을 해보니 사실이었다.

group_concat 함수 정보:

group_concat: 기본 연결 가능한 길이는 1024입니다. 최대 길이가 설정된 경우 이 길이를 초과하면 이 길이로 잘립니다.

쿼리에서(선택) ) 문, group_concat을 사용한 후에는 제한이 무효화됩니다.

1,

MySQL 구성 파일 수정:

#需要设置的长度
group_concat_max_len = 5120

2. 또한 사용 sql 문 설정 :

SET GLOBAL group_concat_max_len=5120;SET SESSION group_concat_max_len=5120;

저장 프로시저에서 위의 두 번째 방법을 채택하여 저장 프로시저를 실행했습니다. OK, 성공!

퇴근하세요 (오늘은 일요일이에요)! ! !

위 내용은 MySQL에서 group_concat() 함수를 사용하는 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.