source

PHPMYADMIN에서 group_concat을 사용하면 결과가 [BLOB - 3B]로 표시됩니다.

itover 2023. 1. 15. 10:24
반응형

PHPMYADMIN에서 group_concat을 사용하면 결과가 [BLOB - 3B]로 표시됩니다.

정수 필드에 mysql의 GROUP_CONCAT를 사용하는 쿼리가 있습니다.
이 쿼리를 개발하기 위해 PHPMYADMIN을 사용하고 있습니다.내 문제는 연결된 필드의 결과인 1,2를 표시하는 대신 [BLOB - 3B]가 나온다는 것이다.

쿼리는

SELECT rec_id,GROUP_CONCAT(user_id)
FROM t1
GROUP BY rec_id

(두 필드 모두 부호 없는 int이며 둘 다 고유하지 않음)

실제 결과를 보려면 무엇을 추가해야 합니까?

GROUP_CONCAT는 이 값이 문자열이 될 것으로 예상하고 있는 것 같습니다.저도 같은 문제에 부딪혔어요.int 열을 다음과 같은 문자열로 변환하여 해결했습니다.

SELECT rec_id,GROUP_CONCAT(CONVERT(user_id, CHAR(8)))
FROM t1
GROUP BY rec_id

아직 문제가 있을 때를 대비해서 말해두죠

MySQL 문서에 따르면CAST(expr AS type)표준 SQL이므로 권장해야 합니다.또한 문자열 길이를 생략할 수도 있습니다.따라서 다음을 제안합니다.

SELECT rec_id, GROUP_CONCAT(CAST(user_id AS CHAR))
FROM t1
GROUP BY rec_id

이것은 도움이 되었습니다(이 블로그 투고에서 확인).

제 경우 파라미터는GROUP_CONCAT문자열이지만 함수는 여전히 BLOB를 생성하지만, 그 결과를 변환합니다.GROUP_CONCAT일했다.

CONVERT(GROUP_CONCAT(user_id) USING 'utf8')

쿼리 결과 바로 위(왼쪽)에 표시됩니다.+options. 눌러서 표시하세요.

BLOB 내용 표시

전문

여기에 이미지 설명 입력

다음과 같이 할 수 있습니다.

set session group_concat_max_len = 512;

group_concat_max_len이 512보다 클 경우 쿼리는 바이트[ ]를 반환합니다.하지만 당신은 끈으로 넘어갈 수 있어요.

System.Text.Encoding.Default.GetString((byte[])DataTable.Rows[0][0]);

최신 Phpmyadmin에서

쿼리를 실행한 후 몇 가지 결과가 나타나고 도트가 표시됩니다.

옵션(쿼리 결과 상단에 있음)을 클릭하기만 하면 됩니다.

그럼 그냥 선택해주세요

전문

라디오 버튼, 기본값은 Partial texts 입니다.

그런 다음 Go 버튼을 누르면 전체 결과가 표시됩니다.

에 액세스 할 수 있는 경우config.inc.phpphpMyAdmin 디렉토리에 파일을 저장하여 다음 행을 변경하는 것이 가장 좋은 해결책이라고 생각합니다.

$cfg['서버'][$i]['확장'] = '확장';

다음과 같이 입력합니다.

$cfg['서버'][$i]['확장'] = 'mysqli';

mysqli 확장을 사용할 수 있는 경우 사용합니다.보다 안전하고 조금 최적화되어 디폴트로는 BLOB 타입의 utf-8을 보다 잘 처리합니다.[BLOB] 엔트리는 다른 특별한 설정 옵션을 추가할 필요 없이 값으로 표시됩니다.

언급URL : https://stackoverflow.com/questions/2133936/using-group-concat-in-phpmyadmin-will-show-the-result-as-blob-3b

반응형