programing

MySQL Workbench는 결과를 BLOB로 표시합니다.

muds 2023. 9. 28. 08:50
반응형

MySQL Workbench는 결과를 BLOB로 표시합니다.

MySQL Workbench가 쿼리 결과를 다음과 같이 표시한다는 것을 계속 발견합니다.BLOB. 예:SELECT INET_NTOA(167773449)-->BLOB

값 보기'를 선택하면 텍스트 값이 '10.0.5.9'라고 판단할 수 있지만 여러 행을 선택하고 내용을 훑어보고 싶을 때 상당히 짜증납니다.

이를 해결할 수 있는 방법이 있습니까, 아니면 도구의 한계입니까?

배경:이 문제는 이진 문자열 값(BINARY/VARBINARY 유형)이 결과에 반환될 때 발생합니다.이진 문자열에는 0바이트가 포함되어 있으며 어떤 이유로 보안이 기본적으로 표시되지 않았습니다.이진 문자열에 대한 자세한 내용은 여기에 있습니다.

보고된 예에서도SELECT INET_NTOA(167773449), 함수는 이진 문자열을 반환합니다.참고용으로 이것을 확인합니다.

해결책:MySQL Workbench v5.2.22부터는 이러한 값을 SHOW로 할지 HIDE로 할지 기본 설정을 통해 설정할 수 있습니다.

  1. MySQL Workbench에서 "Edit -> Preferences..."로 이동합니다. -> SQL 쿼리" 또는 "편집 -> 기본 설정... -> SQL Editor -> SQL Execution" (Workbench의 버전에 따라 다름)
  2. 실제 값을 표시하려면 'BINARY/VARBINARY를 nonbinary 문자열로 처리' 옵션을 선택합니다.

참조:원본 문제는 여기에 수정하여 보고하고 답변하였습니다.

BLOB 타입을 문자열에 캐스트하는 것이 가능합니다.이렇게 하면 선택한 문을 검색할 때 BLOB 유형의 내용을 간단히 살펴볼 수 있습니다.

SELECT CAST(`blob_column_name` AS CHAR(10000) CHARACTER SET utf8) FROM `table_name`;

다른(약간 짧은) 솔루션

SELECT CONVERT(FROM_BASE64(myMEDIUMTEXTcol) using utf8) notAblobject FROM myTable;

관련없는배경

내 테이블에는 Base64 문자열을 저장하는 MEDIATEXT 열이 포함되어 있습니다.프론트엔드 JS 코드에서는 문자열 대신 개체가 계속 반환되었습니다.개체에 ASCII 값 배열이 들어 있는 것 같습니다.

phpMyAdmin에서 관련 쿼리를 테스트한 결과 결과가 BLOB였습니다.객체 대신 간단한 문자열을 반환받기 위해 위와 같이 SQL 쿼리를 업데이트했습니다.

언급URL : https://stackoverflow.com/questions/13634369/mysql-workbench-shows-results-as-blob

반응형