복붙노트

[SQL] 어떻게 MySQL을 텍스트로 BLOB에서 변환합니까?

SQL

어떻게 MySQL을 텍스트로 BLOB에서 변환합니까?

나는 텍스트의 MySQL의 Blob에 저장된 기록의 전체 많다. 취급의 용이성을 위해 나는 데이터를 방해하는 방법을 쉽게되지 않도록 변화를 만들기 위해 ... 텍스트 데이터베이스 형식을 변경하는 어떤 아이디어를하고 싶습니다 - 내가 제대로 인코딩 할 필요가 됐을까?

해결법

  1. ==============================

    1.즉 필요합니다. 그냥 단지로부터 열을 선택하는 대신 ..... FROM SELECT CONVERT (열 사용 UTF8)를 사용하여 ...

    즉 필요합니다. 그냥 단지로부터 열을 선택하는 대신 ..... FROM SELECT CONVERT (열 사용 UTF8)를 사용하여 ...

  2. ==============================

    2.여기에 UTF-8 인코딩 문자 (1000)에 BLOB로 변환하고자하는 사람의 예입니다 :

    여기에 UTF-8 인코딩 문자 (1000)에 BLOB로 변환하고자하는 사람의 예입니다 :

    CAST(a.ar_options AS CHAR(10000) CHARACTER SET utf8)
    

    이것은 그의 대답이다. 당신이 바로 여기 CAST에 대해 읽을 수 있습니다 훨씬 더 아마도있다. 나는 그것이 어떤 도움이되기를 바랍니다.

  3. ==============================

    3.저도 같은 문제가 있었는데, 여기 내 솔루션입니다있다 :

    저도 같은 문제가 있었는데, 여기 내 솔루션입니다있다 :

  4. ==============================

    4.당신은 아주 쉽게 할 수 있습니다.

    당신은 아주 쉽게 할 수 있습니다.

    ALTER TABLE `table_name` CHANGE COLUMN `column_name` `column_name` LONGTEXT NULL DEFAULT NULL ;
    

    위의 쿼리는 날 위해 일했습니다. 내가 너무 당신을 도움이되기를 바랍니다.

  5. ==============================

    5.당신은 MYSQL-워크 벤치를 사용하는 경우, 당신은 일반적으로 BLOB 열을 선택하고 오른쪽 열을 클릭하고 편집기에서 열린 값을 클릭합니다. 스크린 샷을 참조하십시오

    당신은 MYSQL-워크 벤치를 사용하는 경우, 당신은 일반적으로 BLOB 열을 선택하고 오른쪽 열을 클릭하고 편집기에서 열린 값을 클릭합니다. 스크린 샷을 참조하십시오

  6. ==============================

    6.또는 당신은이 기능을 사용할 수 있습니다 :

    또는 당신은이 기능을 사용할 수 있습니다 :

    DELIMITER $$
    
    CREATE FUNCTION BLOB2TXT (blobfield VARCHAR(255)) RETURNS longtext
    DETERMINISTIC
    NO SQL
    BEGIN
           RETURN CAST(blobfield AS CHAR(10000) CHARACTER SET utf8);
    END
    $$
    
    
    DELIMITER ;
    
  7. ==============================

    7.이 답변 아무도 나를 위해 일하지 않는다. UTF8로 변환 할 때, 때 인코더는 그것이 발생합니다이 UTF8로 변환 할 수있는 바이트의 집합을 발견? 데이터 손실을 초래 교체. 당신은 사용 UTF16 필요 :

    이 답변 아무도 나를 위해 일하지 않는다. UTF8로 변환 할 때, 때 인코더는 그것이 발생합니다이 UTF8로 변환 할 수있는 바이트의 집합을 발견? 데이터 손실을 초래 교체. 당신은 사용 UTF16 필요 :

    SELECT
        blobfield,
        CONVERT(blobfield USING utf16),
        CONVERT(CONVERT(blobfield USING utf16), BINARY),
        CAST(blobfield  AS CHAR(10000) CHARACTER SET utf16),
        CAST(CAST(blobfield  AS CHAR(10000) CHARACTER SET utf16) AS BINARY)
    

    당신은 MySQL의 워크 벤치의 이진 값을 검사 할 수 있습니다. 필드에서 마우스 오른쪽 클릭 -> Viewer-> 이진에서 열기 값입니다. 때 BINARY로 변환 다시는 바이너리 값을 원본과 동일해야합니다.

    또는, 당신은 단지 기본-64이 목적을 위해 만들어진 사용할 수 있습니다 :

    SELECT
        blobfield,
        TO_BASE64(blobfield),
        FROM_BASE64(TO_BASE64(blobfield))
    
  8. from https://stackoverflow.com/questions/948174/how-do-i-convert-from-blob-to-text-in-mysql by cc-by-sa and MIT license