MySQL的longblob转换为文本

  1. 一、背景
  2. 二、longblob转换为文本
    1. 实际使用:

一、背景

    MySQL的longblob中存了一些图片,在做数据迁移时想基于动态SQL将数据迁移至新库。

二、longblob转换为文本

下面是三个网上比较多的转换方法:

  1. 使用UTF-8编码将longblob转换为char(1000)的file_data示例

    CAST(t.file_data AS CHAR(10000) CHARACTER SET utf8)
    

    不好使

  2. 使用MySQL 的 CONVERT() 函数

    CONVERT(t.file_data USING utf8)
    

    也不好使

  3. 使用UTF16

    SELECT
        t.file_data,
        CONVERT(t.file_data USING utf16),
        CONVERT(CONVERT(t.file_data USING utf16), BINARY),
        CAST(t.file_data  AS CHAR(10000) CHARACTER SET utf16),
        CAST(CAST(t.file_data  AS CHAR(10000) CHARACTER SET utf16) AS BINARY)
    

    完全不好使

实际使用:

SELECT
    t.file_data,
    TO_BASE64(t.file_data),
    FROM_BASE64(TO_BASE64(t.file_data))

很好用,显示了正常的文本值。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1003805540@qq.com

×

喜欢就点赞,疼爱就打赏